2013年10月28日月曜日

[Django] 開発と本番環境で同じ設定ファイルを使いまわす

Djangoの設定ファイルであるsettings.pyが開発用と本番用の2種類あったりすると、管理が面倒だし、うっかり上書きとかもありえますよね。
面倒なものは1つにまとめましょう。

例えば、開発と本番で静的ファイルの場所やURLが異なる場合は、

settings.pyの真ん中辺
# 本番環境の Static file のルートディレクトリ
STATIC_ROOT = '/path/to/production/dir/'

# 本番環境の Static file の URL
STATIC_URL = 'http://static.example.com/'

settings.pyの一番下のあたりで設定を上書き
# 開発環境の Static file のディレクトリ,URL
import socket
if socket.gethostname() == '開発マシン名':
    STATIC_ROOT = '/path/to/development/dir/'
    STATIC_URL = '/static/'

ここで、'開発マシン名'とは、pythonを実行中のマシンのホスト名です。
>>>> import socket
>>>> socket.gethostname()
'開発マシン名'

こうすれば、settings.pyには基本的に本番環境用の設定を書き込んでおいて、最後に開発環境の設定を上書きすれば良いので、分かりやすく、ミスも起きにくくて使いやすいですね。

0 件のコメント:

コメントを投稿

Related Posts Plugin for WordPress, Blogger...