我正在按照此处的指南尝试为我的 Flask 应用程序的设置创建一个 config.py 文件,但它不起作用。
from flask import Flask
# creates the application
def create_app():
app = Flask(__name__)
app.config.from_object('instance.config.DevelopmentConfig')
# home
@app.route('/')
def home():
return str(app.config['DEBUG']) # displays 'False'
# return str(app.config['SECRET_KEY']) -- displays 'dev'
return app
Run Code Online (Sandbox Code Playgroud)
我的instance/config.py文件
class DevelopmentConfig(object):
ENV = 'development'
DEBUG = True
SECRET_KEY = 'dev'
Run Code Online (Sandbox Code Playgroud)
当我这样做时,flask run它会在关闭调试的情况下在生产中运行服务器。我没有使用,export FLASK_ENV因为我的印象是当您有config.py文件时不需要它。
我的假设错了吗?为什么它正确记录app.config['SECRET_KEY']了DEBUG模式而不是模式?
小智 4
根据此处的文档,您不应通过代码设置 Debug 和 ENV,否则某些扩展可能会误解这一点并出现意外行为。
\n您仍然可以通过代码设置它,它可以使用“python main.py”之类的东西来工作,但再次根据文档...
\n\n\n虽然可以在配置或代码中设置 ENV 和 DEBUG,但强烈建议不要这样做。它们不能被flask命令提前读取xe2x80x99,并且某些系统或扩展可能已经根据先前的值进行了自身配置。
\n
正确的方法是使用终端
\nLinux:
\nexport FLASK_ENV=development\nflask run\nRun Code Online (Sandbox Code Playgroud)\n视窗:
\nset FLASK_ENV=development\nflask run\nRun Code Online (Sandbox Code Playgroud)\n您的 config.py 文件应该与您的数据库和 API 密钥更加相关。
\n