多环境yaml设置遵循12因素App方法。
buba的Python项目详细描述
布巴
多环境yaml设置遵循12因素App方法。在
灵感来自宝石rubyconfig。在
特点:
- 简单的YAML配置文件
- 配置文件支持继承和多环境
- 通过方便的对象成员表示法访问配置信息
- 支持多级设置(Settings.group.subgroup.设置)
安装:
pip install buba
用法:
在项目根目录中创建配置目录和文件:
^{pr2}$- 在
app env加载的文件(默认-开发)。在
- 第一次加载的config/*.yaml文件
- 然后加载config/environment/{APP\\ENV}*.yaml文件(覆盖值,有覆盖/合并列表值的选项)
- 然后检查所有加载的键是否覆盖环境变量(数据库主机将被映射到前缀“DB”主机)
- 在
app env由env ver app_env定义(有覆盖选项)
在 - 在
app env config prefix默认值为“app_config”(有覆盖选项)
在 - 在
app env config splitter默认值为''uuuu'(有覆盖选项)
在
fromosimportenvironfrombubaimportBubaif__name__=='__main__':config=Buba(env_name='APP_ENV',prefix='CONFIG',splitter='::')assertconfig.app_name=='my_app'assertconfig.db.host=='localhost_default'assertconfig.db.user=='user_development'assertconfig.db.password=='password_development'environ['APP_ENV']='production'config.load()assertconfig.app_name=='my_app'assertconfig.db.host=='localhost_default'assertconfig.db.user=='user_production'assertconfig.db.password=='password_production'environ['APP_ENV']='production'environ['CONFIG::DB::HOST']='production_host'environ['CONFIG::APP_NAME']='production_app_name'config.load()assertconfig.app_name=='production_app_name'assertconfig.db.host=='production_host'assertconfig.db.user=='user_production'assertconfig.db.password=='password_production'
- 项目
标签: