我的烧瓶应用具有以下结构。当一个无效的网址出现时,会调用404错误,但是我的404.html需要来自context_processor的数据,但是在中止404中,蓝图是无,因此从不调用context_processor而404.html缺少数据。
我如何以不同的方式处理这个问题?
def create_app(settings_overide=None):
app = factory.create_app(__name__, __path__, settings_overide)
if not app.debug:
app.errorhandler(404)(page_not_found)
return app
def page_not_found(e):
return render_template('404.html'), 404
@blueprint.context_processor
def load_global_data():
return get_data()
答案 0 :(得分:1)
当找不到路线时,尚未设置蓝图(因为设置蓝图需要先确定路线)。因此,404错误处理程序无法依靠已确定的蓝图。
您必须手动执行get_data()
来电。测试是否已设置特定全局,然后在呈现404模板之前执行get_data()
函数。