Django 02편 - Dev&Prod 환경 분리하기
포스트
취소

Django 02편 - Dev&Prod 환경 분리하기

Dev&Prod settings.py 만들기

  • 기존 settings.py 파일명을 base_settings.py로 변경
  • dev_settings.py와 prod_settings.py 파일 추가
    1
    
    from .base_settings import *
    
  • asgi.py와 wsgi.py 수정
    1
    
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'django_demo.prod_settings')
    

    배포할 때 참조되는 settings이므로 prod_settings로 수정해준다.

  • manage.py 수정
    1
    
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'django_demo.dev_settings')
    

    로컬 환경에서 테스트할 때 참조되는 settings이므로 dev_settings로 수정해준다.

  • 잘 돌아가는지 테스트
    1
    
    python manage.py runserver 8000
    

    사진

  • 여기까지의 파일 구조

    사진

settings.py 내용 찢기

공통으로 사용되는 설정은 base_settings.py에 남겨두고 개발환경과 배포환경 각각에서 쓰일 설정을 분리시킨다.

  • SECRET_KEY 만약 오픈소스일 경우 배포환경에서 쓰일 SECRET_KEY는 유출되지않도록 한다. Django의 다양한 보안 모듈에 쓰이기 때문이다.
  • DEBUG 개발환경은 True, 배포환경은 False
  • ALLOWED_HOSTS 개발환경은 보통 공백으로 둔다. 배포환경에선 허용할 도메인만 적어준다.
  • ROOT_URLCONF 개발환경과 배포환경의 URL 설정을 다르게 하려면 분리시킨다.
  • DATABASES 데이터베이스 설정이니 당연히…

기본적으로 있는 설정들은 이 정도만 나누는 편이다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
from .base_settings import *

# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = 'p5abugunn)pry8q86t$p1sjiugxe$&=%-u+tm5+k!e_g+j1+*k'

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True

ALLOWED_HOSTS = []

ROOT_URLCONF = 'django_demo.urls'

# Database
# https://docs.djangoproject.com/en/3.1/ref/settings/#databases

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.