从环境变量轻松设置烧瓶设置
Flask-Env的Python项目详细描述
从环境变量轻松设置Flask设置。
使用flask-env
的原因是能够按照12-factor app建议配置应用程序。
使用flask-env
,您可以在代码中定义默认配置选项,并非常容易地通过环境变量覆盖。
安装
pip install Flask-Env
用法
使用flask-env
可以将配置定义为一个对象,并通过app.config.from_object方法将其加载到flask应用程序中。
Python2
fromflaskimportFlaskfromflask_envimportMetaFlaskEnvclassConfiguration(object):__metaclass__=MetaFlaskEnvDEBUG=FalsePORT=5000app=Flask(__name__)app.config.from_object(Configuration)
Python3
fromflaskimportFlaskfromflask_envimportMetaFlaskEnvclassConfiguration(metaclass=MetaFlaskEnv):DEBUG=FalsePORT=5000app=Flask(__name__)app.config.from_object(Configuration)
覆盖环境变量
# Export environment variable for shell session exportDEBUG=true# Set explicitly for a specific command execution PORT=8000 python app.py
配置烧瓶环境
flask-env
提供两个配置选项来确定如何/加载哪些环境变量。
- 环境前缀
- 仅考虑以该前缀开头的环境变量。
在配置中设置时,将从环境变量名中删除前缀。
(默认值:
''
,示例:ENV_PREFIX = 'MYAPP_'
) - 环境负载全部
- 是否加载配置对象的所有环境变量。
当只加载配置对象上预定义的设置时,所有其他设置都将被忽略。
当
True
中定义的所有环境变量都将加载到配置对象中时。 (默认值False
)
设置配置值
您可以直接在烧瓶配置对象上设置flask-env
配置设置。
fromflask_envimportMetaFlaskEnvclassConfiguration(metaclass=MetaFlaskEnv):ENV_PREFIX='MYAPP_'ENV_LOAD_ALL=False