Python 无法在Flask中的生产服务器中启用调试模式

Python 无法在Flask中的生产服务器中启用调试模式,python,flask,Python,Flask,我尝试在浏览器中启用调试模式,如下所示: from werkzeug.debug import DebuggedApplication application = Flask(__name__) app = application application = DebuggedApplication(app, True) 但是它没有在我的生产服务器Apache中的mod_wsgi下启用调试模式 我做错什么了吗?另外,导出方法也不起作用。DebuggedApplication()中间件只有在

我尝试在浏览器中启用调试模式,如下所示:

from werkzeug.debug import DebuggedApplication  

application = Flask(__name__)
app = application
application = DebuggedApplication(app, True)
但是它没有在我的生产服务器Apache中的
mod_wsgi
下启用调试模式


我做错什么了吗?另外,导出方法也不起作用。
DebuggedApplication()
中间件只有在未捕获的异常到达时才起作用。 在生产模式下,Flask捕获所有异常,因此这些异常永远不会到达中间件

您需要明确告诉Flask不要捕获所有异常,包括:

PROPAGATE_EXCEPTIONS = True
在您的配置中。从:

传播异常
异常被重新引发,而不是由应用程序的错误处理程序处理。如果未设置,则如果启用了
测试
调试
,则隐式为真

在将其包装到
DebuggedApplication
中间件之前,可以在
app
对象上设置它:

app = Flask(__name__)
app.config['PROPAGATE_EXCEPTIONS'] = True
app.wsgi_app = DebuggedApplication(app.wsgi_app, True)

注意,这只告诉Flask不再捕获所有异常。您可能还需要设置其他配置选项,例如,或者只需使用
app.debug=True

启用调试模式,这句话听起来很有魅力,谢谢!那么
app.debug=True
我应该把它放在哪里以及如何工作呢?@κόλαοργο在同一位置,而不是
app.config['PROPAGATE_EXCEPTIONS']=True
。考虑到将调试模式设置为on意味着启用了模板重新加载,并且在异常处理上启用了一些其他调试设置。它们的具体区别是什么?你似乎也很清楚,我想问你是否也能帮我回答这个问题:@code>app.debug设置后会自动启用
PROPAGATEοu异常
。设置app.debug=True可一次性启用所有这些设置。