Override arbitrary Django settings via environment variables.
Project description
Override arbitrary Django settings via environment variables.
Free software: BSD license
Installation
pip install django-env-overrides
Documentation
django-env-overrides lets you quickly adjust an existing Django app to load arbitrary settings from environment variables.
Setup
Add these lines to the end of your setup.py file:
import django_env_overrides django_env_overrides.apply_to(globals())
Any environment variable prefixed with DJANGO__ will now be imported to your settings.
Example
settings.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())
Environment:
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'
Result:
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', ] } } ]
Format for environment variables
The general format for environment variable names is:
<prefix>__<typecast>__<path>__<to>__<target>__<setting>
<prefix> defaults to DJANGO. If you want to use another prefix, use django_env_overrides.apply_to(globals(), prefix="MYPREFIX").
- <typecast> (optional) is any type known to the django-environ package.
Currently the supported types are str, bool, int, float, json, list, tuple, dict, url, path, db_url, cache_url, search_url, and email_url. See the django-environ package for usage.
<typecast> is optional and defaults to str.
<path>__<to>__<target>__<setting> specifies the setting or subsetting the value should be assigned to. Path elements are treated as array indexes if they are integers, and otherwise as dictionary keys.
Development
See CONTRIBUTING.rst
Changelog
0.1.0 (2016-07-21)
First release on PyPI.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file django-env-overrides-0.1.0.tar.gz
.
File metadata
- Download URL: django-env-overrides-0.1.0.tar.gz
- Upload date:
- Size: 10.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2f7c1311a3e0fc5f3dbcfc4e25f3a0b4518f2e9ac37dc49a3a098973e7f1124e |
|
MD5 | 0d8551da5ae5875c810f8d7085bc2252 |
|
BLAKE2b-256 | 2ca7d03111753170ca0707c00859240f56bde8f8a999a82ecdf17b2265ec4203 |
File details
Details for the file django_env_overrides-0.1.0-py2.py3-none-any.whl
.
File metadata
- Download URL: django_env_overrides-0.1.0-py2.py3-none-any.whl
- Upload date:
- Size: 5.7 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3eb1f4718160cc7b1b8c1997c7442442048d2c3deb8aa3bebd4008a7c5e87aa0 |
|
MD5 | d197089da3c92de15175befa56a6244d |
|
BLAKE2b-256 | c15fbc7f7ac4f896c157055c6ac6a3b5a45ace65aa48990a37763be3f3beb736 |