Skip to main content

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

Flask-SQLAlchemy-Caching-1.0.4.tar.gz (5.1 kB view details)

Uploaded Source

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

Hashes for Flask-SQLAlchemy-Caching-1.0.4.tar.gz
Algorithm Hash digest
SHA256 c3c0c86b3a42b0abbc0d64629670fa91244c23a3febde0f481cd612da2de18ab
MD5 188f84c786cbd044a215e9c68d8c1452
BLAKE2b-256 da3d20339dbe72c9acacd0191dfaf8af9e29aaf153fa8759a3a7ddaaaae9b03b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page