CachingQuery implementation to Flask using Flask-SQLAlchemy and Flask-Caching
Project description
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.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file Flask-SQLAlchemy-Caching-1.0.4.tar.gz
.
File metadata
- Download URL: Flask-SQLAlchemy-Caching-1.0.4.tar.gz
- Upload date:
- Size: 5.1 kB
- Tags: Source
- Uploaded using 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
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c3c0c86b3a42b0abbc0d64629670fa91244c23a3febde0f481cd612da2de18ab |
|
MD5 | 188f84c786cbd044a215e9c68d8c1452 |
|
BLAKE2b-256 | da3d20339dbe72c9acacd0191dfaf8af9e29aaf153fa8759a3a7ddaaaae9b03b |