通过环境变量覆盖任意django设置。

django-env-overrides的Python项目详细描述


通过环境变量覆盖任意django设置。

  • 免费软件:BSD许可证

安装

pip install django-env-overrides

文档

Django Env Reavres允许您快速调整现有的Django应用程序,以从环境变量加载任意设置。

设置

将这些行添加到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上的第一个版本。

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

推荐PyPI第三方库


热门话题
安卓 studio安装的java Unity本机广告   java如何将映射转换为对象   java我试图使用rest控制器从h2数据库中检索记录,但它说没有数据集   反思为什么会抛出java。lang.InstanceException?   在opensuse中找不到Java/javac   java为Android上的谷歌地图添加了5900多个标记。如何有效地做   java如何在if语句中使用循环   java如何在JPA(Hibernate)中映射一对多关系和复合主键?   如何在Java中读取和写入外部进程?   Java线程。睡眠时间最短   java使用EclipseGradle插件如何离线托管和使用依赖项(库jar文件)   java为什么虚拟引用在排队时没有被清除?   java无法理解如何创建用于响铃报警的取消按钮   java解析不应通过注入容器错误发生   java Toast或ProgressDialog不显示   java在自定义对象上使用优先级队列的更好方法   java格式的。wmv文件。(或者任何视频文件都很好)   从页面调用另一个侦听器后,不会调用java JSF<f:ajax>侦听器   java注释ConfigApplicationContext不能多次刷新有什么原因吗?