LoginSignup
0
1

More than 5 years have passed since last update.

DjangoのApache2+mod_wsgiで環境によって「settings.py」を分ける方法

Last updated at Posted at 2017-09-29

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
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1