본문 바로가기

IT/django(장고)

[django]장고 개발_11 - setting 환경 나누기

setting 파일 나누기 설정을 해놓으면 로컬에서 개발할 때와 서버에서 배포할 파일의

설정을 따로 나눠서 사용할수 있다는 장점이 생겨요.

기존에 settings.py 파일이 위치하고 있는 폴더에 settings 폴더를 생성하고

__init__, base, local, production  파일을 생성해 주세요.

이제 settings.py 의 내용을 그대로 base.py에 복사를 해서 넣어주고, 각각의 환경마다 다르게 사용될

설정은 base.py에서 제거하고 환경에 따라 작성해주세요.

저는 DEBUG , ALLOWED_HOSTS , DATABASES 만 분리 해주도록 할게요.

 

local.py의 분리한 내용이고 from .base import * 를 적어서 base을 import 했어요.

Django project을 생성할 때 settings.py 에 기본으로 설정되는 BASE_DIR이라는 값이 있어요. 프로젝트의 root path를 저장해두는 것으로 DB파일이 저장되는 위치를 지정하는 등의 파일 경로를 지정할 때 사용되는데 root path를 구하는 과정을 살펴보면 현재 실행되는 파일의 절대 경로를 기준으로 root 폴더까지의 디렉터리의 수만큼os.path.dirname()을 사용하여 구하는 방식인데, 다시 설정해서 사용하는 설정 파일은 기본적으로 생성되는 settings.pysettings.py의 위치보다 한 단계 더 하위에 존재해서 os.path.dirname()을 한 번 더 입력해서 수정해줘야 돼요.

각각 local과 production이 작성이 되었으면 __init__. py에 import를 추가해서 줘야지 django가 settings폴더를 하나의  모듈로 인식하고 장고 서버를 실행할 때 서버 오류가 안 나게 돼요.

그리고 기존의 settings.py는 삭제해 주세요.