Help us understand the problem. What is going on with this article?

Django 環境ごとに設定を変える

More than 1 year has passed since last update.

はじめに

Djangoで開発と本番用のsettings.pyを分けるのがめんどくさいなぁと思っていて、Railsと同様にIfで分岐すればいいんじゃない?と思ってやってみました。

やり方

以下のような感じで環境変数を元に判断させることができました。

settings.py(準備)
import os

try:
    if os.environ['ENV'] == 'DEVELOP':
        django_env_is = 'DEVELOP'
    elif os.environ['ENV'] == 'LOCAL':
        django_env_is = 'LOCAL'
    else:
        django_env_is = 'PRODUCTION'
except:
    django_env_is = 'PRODUCTION'

ENV環境変数が定義されていなかったら、PRODUCTION環境。
ENV環境変数がDEVELOPだったら、DEVELOP環境。
ENV環境変数がLOCALだったら、LOCAL環境。
ENV環境変数がDEVELOPLOCAL以外だったら、PRODUCTION環境。
という具合になっております。

import osを忘れがちなので注意。

そして、環境によって設定を分岐させたいところを以下のように書き換えます。

settings.py(実装)
if django_env_is == 'DEVELOP' or django_env_is == 'LOCAL':
    DEBUG = True
else:
    DEBUG = False

以上です!

wakoit
へっぽこエンジニアです。 自分に何ができるのか探す毎日です。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away