[Django] Where to store host specific variables
1. settings/local.py
myproject/
    - settings/
        - __init__.py
        - default.py
        - local.py
__init__.py:
from .default import * try: from .local import * except ImportError: import logging logger = logging.get_logger(__name__) logger.error("settings/local.py was not found!")
local.py shouldn't be under git index.
Useful practice to add few patterns of local.py for different hosts:
- settings/local.py.development
- settings/local.py.staging
- settings/local.py.production
Keep in mind, don't store sensitive information in files under git index.
2. ~/.bashrc
Unix shell, when starting, reads .bashrc file and executes commands it contains.
First, reads file /etc/.bashrc and next - ~/.bashrc.
My .bashrc on dev laptop looks like:
export VIRTUALENV_DISTRIBUTE=true export PIP_REQUIRE_VIRTUALENV=true export PIP_DOWNLOAD_CACHE=$HOME/.pip/cache export SOME_VAR=someval
To make SOME_VAR available in django.conf.settings:
# settings.py from sys import environ ... SOME_VAR = getattr(environ, 'SOME_VAR', <default value>)
Licensed under CC BY-SA 3.0