Python 使用带有from_object()的Flask config类选择开发/生产/测试环境的正确方法?
我看到许多论坛帖子(包括文档)展示了如何使用带有继承的config类,它看起来非常干净。我很想使用它,但是这些都不能解释如何根据环境加载哪个配置文件 例如,在config.py中有一个config类:Python 使用带有from_object()的Flask config类选择开发/生产/测试环境的正确方法?,python,python-3.x,flask,Python,Python 3.x,Flask,我看到许多论坛帖子(包括文档)展示了如何使用带有继承的config类,它看起来非常干净。我很想使用它,但是这些都不能解释如何根据环境加载哪个配置文件 例如,在config.py中有一个config类: class Config(object): DEBUG = False TESTING = False DATABASE_URI = 'sqlite:///:memory:' class ProductionConfig(Config): DATABASE_URI
class Config(object):
DEBUG = False
TESTING = False
DATABASE_URI = 'sqlite:///:memory:'
class ProductionConfig(Config):
DATABASE_URI = 'mysql://user@localhost/foo'
class DevelopmentConfig(Config):
DEBUG = True
class TestingConfig(Config):
TESTING = True
然后在app.py中:
app = Flask(__name__)
app.config.from_object("config.DevelopmentConfig")
# Overwrite some config on the fly if needed with .env
app.config.from_envvar('YOURAPPLICATION_SETTINGS')
但是,问题是如何从对象(“config.DevelopmentConfig”)自动调用app.config.
或从对象(“config.ProductionConfig”)自动调用app.config.
?它是否应该与另一个包含wich配置的.env文件一起使用?或者我应该使用app_dev.py
,app_prod.py
等,不幸的是,在这些地方会有大量代码重复