Я видел много сообщений на форуме (включая документацию), показывающих, как использовать класс конфигурации с наследованием, и это выглядит действительно чисто. Я хотел бы использовать его, однако ни один из них не объясняет, как загрузить какой файл конфигурации в зависимости от среды.
Например, наличие класса конфигурации в config.py:
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')
Однако проблема заключается в том, как вы вызываете app.config.from_object("config.DevelopmentConfig")
или app.config.from_object("config.ProductionConfig")
автоматически, не меняя код? он должен быть с еще одним файлом .env, который содержит какую конфигурацию использовать? Или мне следует иметь app_dev.py
, app_prod.py
, et c, где, к сожалению, будет дублироваться много кода?