使用flask sqlalchemy和flask缓存实现flask的cachingquery
Flask-SQLAlchemy-Caching的Python项目详细描述
flask sqlalchemy缓存
这是iurisilvio's Flask-SQLAlchemy-Cache的叉子
使用烧瓶sqlalchemy和烧瓶缓存的烧瓶cachingquery实现。
要开始使用缓存查询,只需替换flask sqlalchemyModel.query_class
。
fromflask_sqlalchemyimportSQLAlchemyfromflask_sqlalchemy_cachingimportCachingQueryfromflask_cachingimportCachedb=SQLAlchemy(app,query_class=CachingQuery)cache=Cache(app)
之后,您只需对模型进行查询YourModel
:
fromflask_sqlalchemy_cachingimportFromCache# cache is a Flask-Caching instance imported for your app initYourModel.query.options(FromCache(cache)).get()
您还可以RelationshipCache
启用延迟加载关系
隐藏物.
fromsqlalchemy.ormimportlazyloadfromflask_sqlalchemy_cachingimportRelationshipCacherc=RelationshipCache(YourModel.some_relationship,cache)obj=YourModel.query.options(lazyload(YourModel.some_relationship),rc).get()# make the query and cache the results for future queriesprint(obj.some_relationship)
如果表中有一列更具动态性,并且希望将其从 要缓存,请尝试使用如下延迟查询:
YourModel.query.options(defer('crazy_column')).options(FromCache(cache)).get()
查看Dogpile Caching example了解有关如何
CachingQuery
有效。对它们的大多数更改只是为了整合它
用烧瓶,烧瓶炼金术和烧瓶缓存代替狗堆。