mirror of
https://github.com/jazzband/django-configurations.git
synced 2026-04-27 02:04:51 +00:00
121 lines
3.6 KiB
ReStructuredText
121 lines
3.6 KiB
ReStructuredText
Cookbook
|
|
========
|
|
|
|
.. _project-templates:
|
|
|
|
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:
|
|
|
|
https://github.com/jezdez/django-configurations/tree/templates/1.5.x
|
|
|
|
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:
|
|
|
|
https://github.com/jezdez/django-configurations/tree/templates/1.6.x
|
|
|
|
.. _pip: http://pip-installer.org/
|
|
|
|
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.
|
|
|
|
.. _runfcgi: https://docs.djangoproject.com/en/1.5/howto/deployment/fastcgi/
|
|
|
|
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 :class:`~configurations.values.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.
|
|
|
|
.. _envdir: https://pypi.python.org/pypi/envdir
|