在生产模式下在 Flask 中启用调试模式

Νικ*_*γος 6 python flask

在瓶子中,我启用调试模式所需要做的就是:

from bottle import debug

application = Bottle()
app = application
debug(True)
Run Code Online (Sandbox Code Playgroud)

我如何在 Flask 框架中做同样的事情?

sou*_*atg 11

要启用调试模式,我会将以下代码添加到 Flask 应用程序中:

app.config['ENV'] = 'development'
app.config['DEBUG'] = True
app.config['TESTING'] = True
Run Code Online (Sandbox Code Playgroud)

我还建议为环境和调试设置环境变量。

$ export FLASK_ENV=development 
$ export FLASK_DEBUG=1
Run Code Online (Sandbox Code Playgroud)


Jul*_*eri 4

如果您处于开发环境;您只需按照此处Flask.run指定的方式指定它即可。

例子:

app.run(host='0.0.0.0', port='8080', debug=True)
Run Code Online (Sandbox Code Playgroud)

您还可以采用另一种方法来修改,如此default_config所示。

例子:

app.config['DEBUG'] = True
app.run(host='0.0.0.0', port='8080')
Run Code Online (Sandbox Code Playgroud)

甚至导出FLASK_DEBUG=1- 请记住FLASK_DEBUG覆盖FLASK_ENV=development.

如下所示,Flask 表示以下含义:

在生产环境中部署时请勿启用调试模式。

尽管正如您所说,您希望在生产中启用调试;因此,为什么我不会使用 ,Flask.run因为它是用于开发环境的,而且我当然不会将FLASK_ENV设为development

我建议您重新考虑生产调试的概念,因为生产不是为了调试;而是为了调试。简而言之,我相信您想要在生产中进行调试的推理是错误的。

另一种可能的解决方案是使用以下方法(分叉、多进程):

from werkzeug.debug import DebuggedApplication  
application = DebuggedApplication(app, True)
Run Code Online (Sandbox Code Playgroud)