大多数应用不止需要一份配置。生产服务器和开发期间使用的服务器应该各有一份单独
的配置。处理这个的最简单方法是,使用一份默认的总会被载入的配置,和一部分版本
控制,以及独立的配置来像上面提到的例子中必要的那样覆盖值:
app = Flask(__name__)
app.config.from_object('yourapplication.default_settings')
app.config.from_envvar('YOURAPPLICATION_SETTINGS')
然后你只需要添加一个独立的 config.py 文件然后 export
YOURAPPLICATION_SETTINGS=/path/to/config.py 。不过,也有其它可选的方式。
例如你可以使用导入或继承。
在 Django 世界中流行的是在文件顶部,显式地使用
from yourapplication.default_settings import * 导入配置文件,并手动覆
盖更改。你也可以检查一个类似 YOURAPPLICATION_MODE 的环境变量来设置
production , development 等等,并导入基于此的不同的硬编码文件。
一个有意思的模式是在配置中使用类和继承:
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
启用这样的配置你需要调用 from_object()
app.config.from_object('configmodule.ProductionConfig')
管理配置文件有许多方式,这取决于你。这里仍然给出一个好建议的列表: