Правильный способ использования класса конфигурации Flask с from_object () для выбора среды разработки / производства / тестирования? - PullRequest
1 голос
/ 05 мая 2020

Я видел много сообщений на форуме (включая документацию), показывающих, как использовать класс конфигурации с наследованием, и это выглядит действительно чисто. Я хотел бы использовать его, однако ни один из них не объясняет, как загрузить какой файл конфигурации в зависимости от среды.

Например, наличие класса конфигурации в 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, где, к сожалению, будет дублироваться много кода?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...