我想创建一个蓝图; 我当前的蓝图不是问题.我可以做这个.
但是,我想在我的应用程序中使用烧瓶扩展(对于我的情况,我想集成flask-Cache)?
到目前为止我所做的一切都有错误:
cache = Cache(my_blueprint)
以不同的形式导入Cache和Cache的各个部分
所以像flask-cache这样的东西很简单,可以包裹我的app:
from flask.ext.cache import Cache
cache = Cache(app)
Run Code Online (Sandbox Code Playgroud)
但是在蓝图中使用它或使用蓝图我现在还不太明白.
编辑:不太明显的解决方案是从扩展程序中删除并构建我自己的库以导入蓝图,但这是更多的工作,我还没有完成.扩展/蓝图似乎与我现在的理解水平不兼容.
Sea*_*ira 42
为了避免循环导入,您需要创建与应用程序实例分开的缓存实例(如果要构建更复杂的东西,可能需要考虑切换到应用工厂模块).
cache.py
from flask_cache import Cache
cache = Cache()
Run Code Online (Sandbox Code Playgroud)
foo.py
from flask import Blueprint
from cache import cache
mod = Blueprint(...)
@mod.route("/")
@cache.cached(timeout=50)
def index():
return datetime.now().strfmtime("%Y-%m-%d %H:%M:%S")
Run Code Online (Sandbox Code Playgroud)
app.py
from flask import Flask
from yourapp.cache import cache
from yourapp.foo import mod
app = Flask("yourapp")
# ... snip ...
cache.init_app(app)
# ... snip ...
app.register_blueprint(mod)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5015 次 |
| 最近记录: |