Skip to main content

使用 Flask-SQLAlchemy 和 Flask-Caching 对 Flask 的 CachingQuery 实现

项目描述

Flask-SQLAlchemy-缓存

这是iurisilvio 的 Flask-SQLAlchemy-Cache 的一个分支

使用 Flask-SQLAlchemy 和 Flask-Caching 对 Flask 的 CachingQuery 实现。

要开始使用缓存查询,您只需替换 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)

之后,您可以对模型进行查询YourModel

from flask_sqlalchemy_caching import FromCache

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

您还必须RelationshipCache从缓存中启用延迟加载关系。

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)

如果您的表中有一个动态得多的列,并且您希望将其排除在缓存之外,请尝试使用延迟查询,例如:

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

查看Dogpile Caching 示例以了解有关其 CachingQuery工作原理的更多详细信息。对其进行的大多数更改只是为了将其与 Flask、Flask-SQLAlchemy 和 Flask-Caching 而不是 Dogpile 集成。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

Flask-SQLAlchemy-Caching-1.0.4.tar.gz (5.1 kB 查看哈希)

已上传 source