通过环境变量覆盖任意django设置。
django-env-overrides的Python项目详细描述
通过环境变量覆盖任意django设置。
- 免费软件:BSD许可证
安装
pip install django-env-overrides
文档
设置
将这些行添加到setup.py文件的末尾:
import django_env_overrides django_env_overrides.apply_to(globals())
任何前缀为DJANGO__的环境变量现在都将导入到您的设置中。
示例
设置.py:
DEBUG = True MEDIA_URL = '/media/' DATABASES = { 'default': { 'ENGINE': 'sqlite3', } } TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'OPTIONS': { 'context_processors': [ 'django.contrib.auth.context_processors.auth', ] } } ] import django_env_overrides django_env_overrides.apply_to(globals())
环境:
DJANGO__SECRET_KEY=secret DJANGO__MEDIA_URL=/new_url/ DJANGO__bool__DEBUG=False POSTGRES=postgres://uf07k1:wegauwhg@ec2-107-21-253-135.compute-1.amazonaws.com:5431/d8r82722 DJANGO__db__DATABASES__default=$POSTGRES DJANGO__TEMPLATES__0__OPTIONS__context_processors__1='my.context.processor'
结果:
DEBUG = False MEDIA_URL = '/new_url/' SECRET_KEY = 'secret' DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': 'd8r82722', 'HOST': 'ec2-107-21-253-135.compute-1.amazonaws.com', 'USER': 'uf07k1', 'PASSWORD': 'wegauwhg', 'PORT': 5431, } } TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'OPTIONS': { 'context_processors': [ 'django.contrib.auth.context_processors.auth', 'my.context.processor', ] } } ]
环境变量格式
环境变量名的一般格式为:
<prefix>__<typecast>__<path>__<to>__<target>__<setting>
<prefix>默认为DJANGO。如果要使用其他前缀,请使用django_env_overrides.apply_to(globals(),prefix="MYPREFIX")。
- <typecast>(可选)是任何type known to the django-environ package.
- 当前支持的类型有str、bool、int、float、json、list、tuple、dict、url、path、db_url、cache_url、search_url和email_url。 有关用法,请参阅django environ软件包。
<typecast>是可选的,默认为str。
<path>__<to>__<target>__<setting>指定值应分配给的设置或子设置。路径元素 如果它们是整数,则视为数组索引,否则视为字典键。
开发
请参见contribution.rst
更改日志
0.1.0(2016-07-21)
- pypi上的第一个版本。