目前,我有一个应用程序工厂,如下所示:
from flask import Flask
from flask.ext.bootstrap import Bootstrap
from flask.ext.cache import Cache
from config import config
bootstrap = Bootstrap()
cache = Cache(config={'CACHE_TYPE': 'simple'})
def create_app(environment):
app = Flask(__name__)
app.config.from_object(config[environment])
bootstrap.init_app(app)
cache.init_app(app)
from main import main as base_blueprint
from charts.statistics import statistics
app.register_blueprint(base_blueprint)
app.register_blueprint(statistics, url_prefix='/statistics')
return app遵循这个模式,我有了我的统计蓝图。charts/目录中的__init__.py如下所示:
from flask import Blueprint
statistics = Blueprint('statistics', __name__)
from . import statistics_charts..。而statistics_charts.py只有以下几点
@statistics.route('/summary_chart')
@cache.memoize(timeout=5000)
def summary_chart():
# ...
return jsonify(my_data)然而,当我尝试运行它时,它总是给我一个名称错误,说缓存从未定义过。这在其他应用程序中有效,它们只是一个文件,但似乎不适用于应用程序工厂和蓝图样式。
要使缓存在蓝图中工作,必须执行哪些操作?
发布于 2014-06-03 03:49:53
将两个cache行移动到statistics_charts.py文件。然后它会抱怨没有定义statistics,但这是一个很容易解决的问题。
发布于 2014-10-08 22:33:46
您需要将以下import语句添加到蓝图的顶部。
from . import cachehttps://stackoverflow.com/questions/24001158
复制相似问题