gpt4 book ai didi

python - Flask 配置文件 - 'DEBUG=True' 什么都不做

转载 作者:太空狗 更新时间:2023-10-30 00:09:17 25 4
gpt4 key购买 nike

我在名为“MyApp”的包中构建了一个大型 Flask 应用程序(完全如此处所示:http://flask.pocoo.org/docs/0.12/patterns/packages/)

根据 Flask 文档, Debug模式应启用以下功能:

  1. 它激活调试器
  2. 它激活自动重新加载器
  3. 它在 Flask 应用程序上启用 Debug模式。

一开始我使用以下命令运行我的 flask 应用程序并且一切正常:

export FLASK_APP=MyApp
export FLASK_DEBUG=1
flask run

然后我阅读了设置配置系统(包括 Debug模式)的正确方法。所以我创建了以下 config.py 文件:

class Config(object):
DEBUG = False
...

class ProductionConfig(Config):
...

class DevelopmentConfig(Config):
DEVELOPMENT = True
DEBUG = True
...

CONFIGS = {
"development": DevelopmentConfig,
"production": ProductionConfig,
"default": DevelopmentConfig
}

在我的应用程序 __init__.py 文件中,我写道:

app = Flask(__name__)
config_name = os.getenv('FLASK_CONFIGURATION', 'default')
app.config.from_object(CONFIGS[config_name])

现在,为了运行应用程序,我输入了一个新命令:

export FLASK_APP=MyApp
export FLASK_CONFIGURATION=development
flask run

不幸的是,这次 Debug模式根本没有激活..

没有激活调试器或自动重新加载器。唯一发生变化的是 app.debug 现在等于 True

我不明白。看起来 DEBUG = TRUE 没有正常工作。

你知道为什么会这样吗?

最佳答案

使用调试器运行不同于设置 DEBUG 配置。你必须两者都做。在 Debug模式下运行服务器会自动设置配置。通常,您应该依赖它而不是直接设置配置。

您读到的“正确配置方式”是 a) 只是另一种方式,而不是“正确”方式,b) 只设置配置,而不是 FLASK_DEBUG 环境变量,它是什么控制服务器的 Debug模式。

从 Flask 2.2 开始,设置环境变量 FLASK_DEBUG=1,或将 --debug 选项传递给 flask 命令,告诉 flask run 用调试器和重新加载器包装应用程序。 (app.run(debug=True) 的作用相同,但首选 flask run 命令)。 app.debug 切换 Flask 应用程序中的一些内部行为,例如将错误传递给启用开发模式的交互式调试器。

关于python - Flask 配置文件 - 'DEBUG=True' 什么都不做,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45896649/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com