Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用带有from_object()的Flask config类选择开发/生产/测试环境的正确方法?_Python_Python 3.x_Flask - Fatal编程技术网

Python 使用带有from_object()的Flask 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

我看到许多论坛帖子(包括文档)展示了如何使用带有继承的config类,它看起来非常干净。我很想使用它,但是这些都不能解释如何根据环境加载哪个配置文件

例如,在config.py中有一个config类:

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
等,不幸的是,在这些地方会有大量代码重复