首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在蓝图/应用程序工厂中,flask-cache导致名称错误

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

Stack Overflow用户
提问于 2014-06-03 02:41:28
回答 2查看 1.5K关注 0票数 2

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

代码语言:javascript
复制
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如下所示:

代码语言:javascript
复制
from flask import Blueprint
statistics = Blueprint('statistics', __name__)
from . import statistics_charts

..。而statistics_charts.py只有以下几点

代码语言:javascript
复制
@statistics.route('/summary_chart')
@cache.memoize(timeout=5000)
def summary_chart():
  # ...
  return jsonify(my_data)

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

要使缓存在蓝图中工作,必须执行哪些操作?

EN

回答 2

Stack Overflow用户

发布于 2014-06-03 03:49:53

将两个cache行移动到statistics_charts.py文件。然后它会抱怨没有定义statistics,但这是一个很容易解决的问题。

票数 1
EN

Stack Overflow用户

发布于 2014-10-08 22:33:46

您需要将以下import语句添加到蓝图的顶部。

代码语言:javascript
复制
from . import cache
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24001158

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档