404 errorhand中缺少Flask上下文

2024-04-26 23:28:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我的烧瓶应用程序有以下结构。当一个无效的url出现在404错误被调用,但是我的404.html需要来自context\u处理器的数据,但是在abort 404中蓝图没有,所以context\u处理器从不被调用,404.html丢失数据。你知道吗

我该如何以不同的方式处理这个问题?你知道吗

初始化.py

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

你知道吗处理器.py

@blueprint.context_processor
def load_global_data():
    return get_data()

Tags: 数据pyappdatareturnsettingsdefhtml
1条回答
网友
1楼 · 发布于 2024-04-26 23:28:08

当找不到路由时,还没有设置蓝图(因为设置蓝图需要先确定路由)。因此,404错误处理程序不能指望蓝图已经确定。你知道吗

您必须手动执行get_data()调用。测试是否设置了特定的全局设置,如果没有,则在呈现404模板之前执行get_data()函数。你知道吗

相关问题 更多 >