多环境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'

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何使用SPARQL从三元组中提取rdf:about或rdf:ID属性?   java如何组合/分离多个json   java如何使用Jackson序列化对象的嵌套集合   Java ProcessBuilder如何从进程捕获文件读取请求并作为流提供?   Java更改JLabel文本更改JLabel位置   如何从Java评估自己的Groovy脚本?   json java下载,然后将图像作为servlet响应写入   java处理多播放器线程和重新绘制   java Selenium如何选择具有可变文本的元素   java动态设置类路径   用字符串Java中的全名替换所有特殊字符的最佳方法是什么?   返回空值的java HashMap   针对空请求体的java Spring bean验证   java API中的“字段摘要”是什么?   jenkins在管道作业中使用多个java版本   java用JAR打开文本文件而不提取帮助   java将JPanel对象添加到单独的JPanel中