Login

Rails-like environments using Django

Author:
ElfSternberg
Posted:
October 14, 2009
Language:
Python
Version:
1.1
Tags:
django rails environment
Score:
0 (after 2 ratings)

This is a replacement for settings.py, which moves the actual settings files into a directory called "env" and establishes different versions for different settings of the environment variable DJANGO_ENV. At runtime, the specified development environment can be found and loaded into the local context of settings.py, which is then picked up by whatever routine manage.py is kicking off.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
import os
import os.path

PROJECT_ROOT = os.path.normpath(os.path.dirname(__file__))

local_import = "env/development.py"
if os.getenv("DJANGO_ENV") == 'TEST':
    local_import = "env/test.py"
elif os.getenv("DJANGO_ENV") == 'PRODUCTION':
    local_import = "env/production.py"

import_file = open(os.path.join(PROJECT_ROOT, local_import))
exec(import_file)

More like this

Comments

insha (on October 14, 2009):
<p>That's cool and see why someone might want to do this; but I find it simpler to duplicate my settings.py file rename it to local_settings.py (or whatever you like) and add the following to the end of the original settings.py:</p> <pre>try: from local_settings import * except ImportError: pass </pre>

#

Please login first before commenting.