Skip to main content

Flask-SQLAlchemy-Caching

This is a fork of iurisilvio's Flask-SQLAlchemy-Cache

A CachingQuery implementation to Flask using Flask-SQLAlchemy and Flask-Caching.

To start using caching queries, you just have to replace Flask-SQLAlchemy Model.query_class.

from flask_sqlalchemy import SQLAlchemy
from flask_sqlalchemy_caching import CachingQuery
from flask_caching import Cache

db = SQLAlchemy(app, query_class=CachingQuery)

cache = Cache(app)

After that, you can just make queries to a model YourModel:

from flask_sqlalchemy_caching import FromCache

# cache is a Flask-Caching instance imported for your app init
YourModel.query.options(FromCache(cache)).get()

You also have RelationshipCache to enable lazy loading relationships from cache.

from sqlalchemy.orm import lazyload
from flask_sqlalchemy_caching import RelationshipCache

rc = RelationshipCache(YourModel.some_relationship, cache)
obj = YourModel.query.options(lazyload(YourModel.some_relationship), rc).get()

# make the query and cache the results for future queries
print(obj.some_relationship)

If there is a column in your table that is much more dynamic and you want to exclude it from being cached, try using a deferred query like:

YourModel.query.options(defer('crazy_column')).options(FromCache(cache)).get()

Take a look at Dogpile Caching example to more details about how CachingQuery works. Most changes to their were made just to integrate it with Flask, Flask-SQLAlchemy and Flask-Caching instead of Dogpile.

Metadata

Release files for Flask-SQLAlchemy-Caching 1.0.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for Flask-SQLAlchemy-Caching 1.0.4
File Size Uploaded
Flask-SQLAlchemy-Caching-1.0.4.tar.gz 5.1 kB Details

Release files / Flask-SQLAlchemy-Caching-1.0.4.tar.gz

Download URL Flask-SQLAlchemy-Caching-1.0.4.tar.gz
Size 5.1 kB
Tags Source
SHA-256 checksum
How to use checksums
c3c0c86b3a42b0abbc0d64629670fa91244c23a3febde0f481cd612da2de18ab
BLAKE2b-256 checksum
How to use checksums
da3d20339dbe72c9acacd0191dfaf8af9e29aaf153fa8759a3a7ddaaaae9b03b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/39.2.0 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.5

Release history Release notifications | RSS feed

This release

1.0.4 This release

1 release file

1.0.3

2 release files

1.0.2

2 release files

1.0.1

3 release files

1.0.0

1 release file

0.1.1

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page