【问题标题】:Flask's @before_request executes more than onceFlask 的 @before_request 多次执行
【发布时间】:2011-09-30 19:45:24
【问题描述】:

我在@app.before_request 中添加了一个app.logger.error('test'),并注意到每个请求在我的日志中最多有8 行test,即使它只是abort(500)。我似乎无法找出原因,这可能是什么原因造成的?

【问题讨论】:

    标签: python flask


    【解决方案1】:

    如果您使用app.debug = True 运行并从 Flask 提供媒体文件(图像、css、js 等),它们也算作完整请求。如果不是这种情况,请提供有关您的设置的更多信息。

    【讨论】:

    • 我提供存储在/static/ 中的媒体文件,调试模式似乎无关紧要,结果相同。这是一个非常标准的 Flask (0.7.2) 程序,没有太多的设置。我将 Mako 用于一些模板,但这似乎不是问题。
    • 我刚刚检查过,app.debug 似乎并没有阻止这种情况的发生。静态文件的请求仍然在 Flask 中抛出。不过,我很确定,它在您的记录器中多次出现的原因是因为 before_request 仍然应用于静态文件。通常,您会让您的网络服务器(Apache、nginx)处理生产中的静态文件,然后就不会发生这种情况。对困惑感到抱歉! :)
    • 啊,好吧,至少我现在知道是什么原因了,谢谢。我想这就是文档建议不要在生产中使用内置服务器的原因之一。
    猜你喜欢
    • 2013-01-23
    • 1970-01-01
    • 1970-01-01
    • 2013-12-25
    • 1970-01-01
    • 1970-01-01
    • 2013-01-30
    • 1970-01-01
    • 2018-06-20
    相关资源
    最近更新 更多