Cookbook

Project templates

You can use a special Django project template that is a copy of the one included in Django 1.5.x and 1.6.x. The following examples assumes you’re using pip to install packages.

Django 1.5.x

First install Django 1.5.x and django-configurations:

pip install -r https://raw.github.com/jezdez/django-configurations/templates/1.5.x/requirements.txt

Then create your new Django project with the provided template:

django-admin.py startproject mysite -v2 --template https://github.com/jezdez/django-configurations/archive/templates/1.5.x.zip

See the repository of the template for more information:

Django 1.6.x

First install Django 1.6.x and django-configurations:

pip install -r https://raw.github.com/jezdez/django-configurations/templates/1.6.x/requirements.txt

Or Django 1.6:

django-admin.py startproject mysite -v2 --template https://github.com/jezdez/django-configurations/archive/templates/1.6.x.zip

Now you have a default Django 1.5.x or 1.6.x project in the mysite directory that uses django-configurations.

See the repository of the template for more information:

Celery

Given Celery’s way to load Django settings in worker processes you should probably just add the following to the begin of your settings module:

from configurations import importer
importer.install()

That has the same effect as using the manage.py or wsgi.py utilities mentioned above.

FastCGI

In case you use FastCGI for deploying Django (you really shouldn’t) and aren’t allowed to us Django’s runfcgi management command (that would automatically handle the setup for your if you’ve followed the quickstart guide above), make sure to use something like the following script:

#!/usr/bin/env python

import os
import sys

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings')
os.environ.setdefault('DJANGO_CONFIGURATION', 'MySiteConfiguration')

from configurations.fastcgi import runfastcgi

runfastcgi(method='threaded', daemonize='true')

As you can see django-configurations provides a helper module configurations.fastcgi that handles the setup of your configurations.

Envdir

envdir is an effective way to set a large number of environment variables at once during startup of a command. This is great in combination with django-configuration’s Value subclasses when enabling their ability to check environment variables for override values.

Imagine for example you want to set a few environment variables, all you have to do is to create a directory with files that have capitalized names and contain the values you want to set.

Example:

$ tree mysite_env/
mysite_env/
├── DJANGO_SETTINGS_MODULE
├── DJANGO_DEBUG
├── DJANGO_DATABASE_URL
├── DJANGO_CACHE_URL
└── PYTHONSTARTUP

0 directories, 3 files
$ cat mysite_env/DJANGO_CACHE_URL
redis://user@host:port/1
$

Then, to enable the mysite_env environment variables, simply use the envdir command line tool as a prefix for your program, e.g.:

$ envdir mysite_env python manage.py runserver

See envdir documentation for more information, e.g. using envdir from Python instead of from the command line.

Project Versions

Table Of Contents

Previous topic

Values

Next topic

Changelog

This Page