python - 在蓝图/应用程序工厂中时,flask-cache 会导致名称错误

标签 python caching flask

目前,我有一个应用程序工厂,如下所示:

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)

但是,当我尝试运行它时,它不断地给我一个名称错误,说缓存从未定义。这在其他应用程序中有效,这些应用程序只是一个文件,但似乎不适用于应用程序工厂和蓝图样式。

必须做什么才能使缓存在蓝图中工作?

最佳答案

将两个 cache 行移动到 statistics_charts.py 文件中。然后它会提示statistics没有被定义,但这是一个简单的修复。

关于python - 在蓝图/应用程序工厂中时,flask-cache 会导致名称错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24001158/

相关文章:

python - 如何修改 GET 的反向 url?

python - 在 Mac OSX 上找不到 python 模块

python - 为什么我不能在请求到来后使用 flask.g?

django - 我不应该使用 Django 每站点缓存吗?

c++ - 线程 vector 中的假缓存共享 C++

python - 获取 werkzeug.routing.BuildError

javascript - 通过 Flask 发送 POST 数据

python - 如何连接两列并更新 python 中的 csv?

python - 如何使用 OpenCV 捕获多个摄像头流?

grails - Grails-存储缓存的位置