Django:1.10
ローカル環境、開発環境、商用環境…
通常、環境によってデータベースやAPI等の接続先は違うかと思います。
上記サイトによると、
wsgi.py
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'
これを書き換えることによって、変更できるらしいです。
でも、デプロイする度に書き換えるのはめんどう。
解決策は、以下サイトに記載されていました。
Apacheの設定でprocess-groupにsettingsの名前を指定して、それをwsgi.pyで使う方法ですね。
僕はWSGIProcessGroupを使って、1行追加するだけで済むように対応しました。
django.conf
WSGIProcessGroup mysite.settings_pr
wsgi.pyの方はサンプル通りに実装。
ImportErrorをハンドリングすることで、ローカルはApache使ってない!みたいな場合でも対応可能になってますね。
これでデプロイする度に読み込むsettings.pyを書き換えて設定する必要がなくなりました。
ちなみに、settings.pyの定義を使う時は以下のように書きます。
xxx.py
from django.conf import settings
api_url = settings.API_URL