ローカル開発と本番サーバーの設定を処理するための推奨される方法は何ですか? 一部の設定 (定数など) は両方で変更/アクセスできますが、一部の設定 (静的ファイルへのパスなど) は異なるままにしておく必要があるため、新しいコードがデプロイされるたびに上書きしないでください。
現在、すべての定数を に追加していますsettings.py
。ただし、ローカルで定数を変更するたびに、それを本番サーバーにコピーし、本番固有の変更に合わせてファイルを編集する必要があります... :(
編集: この質問に対する標準的な答えはないようですが、最も一般的な方法を採用しました。
ベストアンサー1
Django の 2 つのスクープ: Django 1.5 のベスト プラクティス設定ファイルのバージョン管理を使用し、ファイルを別のディレクトリに保存することをお勧めします。
project/
app1/
app2/
project/
__init__.py
settings/
__init__.py
base.py
local.py
production.py
manage.py
ファイルbase.py
には共通の設定 (MEDIA_ROOT や ADMIN など) が含まれますが、local.py
および にはproduction.py
サイト固有の設定が含まれます。
ベースファイル内settings/base.py
:
INSTALLED_APPS = (
# common apps...
)
ローカル開発設定ファイル内settings/local.py
:
from project.settings.base import *
DEBUG = True
INSTALLED_APPS += (
'debug_toolbar', # and other apps for local development
)
ファイル制作設定ファイル内settings/production.py
:
from project.settings.base import *
DEBUG = False
INSTALLED_APPS += (
# other apps for production site
)
次に、django を実行するときに、次の--settings
オプションを追加します。
# Running django for local development
$ ./manage.py runserver 0:8000 --settings=project.settings.local
# Running django shell on the production site
$ ./manage.py shell --settings=project.settings.production
この本の著者らはまた、サンプルプロジェクトレイアウトテンプレートGithub で。