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

  1. Load a local settings file for dev/test environments by menendez 6 years, 7 months ago
  2. Read settings from local_settings.py by statico 5 years, 1 month ago
  3. monkey-patch django to use jinja2 templates for 404/500 pages and 3rd-party apps by brondsem 5 years, 11 months ago
  4. integrated jinja2 which could use generic view ,my djangojinja2.py by jasongreen 5 years, 2 months ago
  5. Keep settings.py in version control safely by mboersma 7 years, 11 months ago

Comments

insha (on October 14, 2009):

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:

try: 
    from local_settings import * 
except ImportError: 
    pass

#

Please login first before commenting.