djangoの標準的な方法は、environmanet変数DJANGO_SETTINGS_MODULEを使用することです。異なる設定をポイントし、両方とも共通のものに共通の設定モジュールをインポートしてみましょう:
あなたはまた得るような、いくつかのシステムの状態に応じて、別のものから一つのメイン設定やインポートの名前を使用しての代替戦略を使用することができます
# settings_production.py
from settings_common import *
DEBUG = False
DATABASES = {...}
# settings_development.py
from settings_common import *
DEBUG = True
DATABASES = {...}
# settings_common.py
INSTALLED_APPS = (...) # etc
os.platform.node()
またはsocket.gethostname()
を入力し、その値(またはその一部)を切り替えます。
reversed_hostname_parts = socket.gethostname().split('.').reverse()
host_specific = {
('com', 'dotcloud'): 'production',
('local'): 'dev',
}
for index in range(len(reversed_hostname_parts)):
identifier = tuple(reversed_hostname_parts[:index+1])
if identifier in host_specific:
extra_settings = host_specific[identifier]
break
else: # executed when the loop has not been `break`ed
extra_settings = 'dev' # any default value
if extra_settings == 'dev':
from development_settings import *
elif extra_settings == 'production':
from production_settings import *
EDIT:追加リンク
は、他の戦略をhttps://code.djangoproject.com/wiki/SplitSettingsを参照してください。
[buildout](http://www.buildout.org/)をご覧ください。または[Fabric](http://docs.fabfile.org/en/1.2.0/index.html) –