【发布时间】:2020-10-09 02:43:22
【问题描述】:
我正在尝试构建一个基本的烧瓶应用程序用于学习目的。一切顺利,但有一个我不明白的问题。在我的 run.py 文件中,我有以下行:
app.config.from_object('config.prodConfig')
这会在根目录中加载 config.py,其中包含以下代码:
class Config:
SECRET_KEY = '1234567890'
STATIC_FOLDER = 'static'
TEMPLATES_FOLDER = 'templates'
class devConfig(Config):
FLASK_ENV = 'development'
DEBUG = True
TESTING = True
class prodConfig(Config):
FLASK_ENV = 'production'
DEBUG = False
TESTING = False
我的理解是 Config 包含一些“默认”设置。 devConfig 和 prodConfig 基于 Config,因此将始终包含这些值,但每个都有不同的 env、debug 和 testing 值。虽然我没有收到任何错误并且调试似乎已激活,但当我运行我的 Flask 实例时,它告诉我我正在生产中运行,无论我做什么。
* Serving Flask app "run" (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: on
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
* Restarting with stat
* Debugger is active!
我对在终端/环境中设置 env 变量不感兴趣,我知道该怎么做。我感兴趣的是为什么这不起作用。毕竟,FLASK_ENV 指令是一个有效的指令,它应该在被指示时加载。
我做错了什么?
【问题讨论】:
-
documentation 特别警告不要在代码中设置 FLASK_ENV,因为如果应用程序已经设置,任何更改都可能不会生效。
-
解决办法是什么?
-
你想设置
ENV而不是FLASK_ENV。同样,文档警告不要在代码中这样做。
标签: flask config environment production