从环境中读取12因素应用程序的配置
bienvenue的Python项目详细描述
python模块,用于从环境中读取12-factor apps的配置。 支持Python3.4+
基本原理
在一个12因素的应用程序中,config comes from the environment。 例如,在heroku上,在命令行上使用heroku config:set设置配置变量, 然后passed to the application in the environment。
从环境中读取和解析配置是冗长且容易出错的。为了 例如,django应用程序有settings.DEBUG,应该是 可以是True或False。运算符运行heroku config:set DJANGO_DEBUG off以禁用它,但应用程序只看到非空字符串 并将该值视为True。
这类问题可以逐案处理,但不需要。很明显 具有回退布尔值的配置设置应解释为 环境中的布尔值。同样,回退整数设置指示 关联的环境变量应从字符串转换为int。
听起来像是一个小型的、经过良好测试的python模块的工作,对吧?
用法
bienvenue提供函数make_env_reader,该函数返回一个新的 访问环境的功能。例如:
frombienvenueimportmake_env_readerenv=make_env_reader(prefix='MY_')DEBUG=env('DEBUG',False)SECRET_KEY=env('SECRET_KEY','fallback-secret-for-dev')ALLOWED_HOSTS=env('ALLOWED_HOSTS',[])
env reader在os.environ中查找MY_DEBUG。如果它不在那里, 将返回默认值False。但是如果找到了,那么 这里的值将根据默认值的类型进行解释,在这里 大小写布尔型。常见的字符串如on/off、true/false和yes/no 解释为True或False。
同样地,SECRET_KEY将从MY_SECRET_KEY中提取,然后 解释为字符串值。
ALLOWED_HOSTS将从MY_ALLOWED_HOSTS和json中提取 解码为列表,因为默认值是列表。
如果bienvenue在解析期间遇到未知类型或值,它将记录 错误并返回到提供的默认值。