장고에서는 개발 환경에 따라 settings.py
를 구분하여 목적에 맞게 서버 환경을 설정할 수 있습니다. 환경을 분리하는 이유는 원활한 협업, 코드의 유지 보수, 공개/비공개 처리, 라이브러리 및 데이터베이스 관리 등을 위해서입니다.
개발 환경에는 기본적으로 서버에 연결하지 않으나 공통 사항들을 공유하는 local
과 base
가 있으며, AWS S3, RDS 등에 연동한 development
, 이를 실제로 배포하는 production
이 있습니다.
장고 settings.py 분리하는 방법
settings.py
가 있는 로컬 환경에서settings
디렉토리를 생성합니다.
mkdir settings
- 이를 패키지화 해서 사용할 것이므로
__init__.py
를 생성해줍니다.
cd settings
touch __init__.py
settings.py
의 이름을development.py
로 변경하고 생성한 디렉토리를 이동합니다.
mv settings.py development.py
mv settings.py ./settings
development.py
를 열어BASE_DIR
를 다음과 같이 설정하여 부모 디렉토리의 위치를 설정합니다.
BASE_DIR = Path(__file__).resolve().parent.parent.parent
- 다음으로
production.py
를 만들어 다음과 같이development.py
를 상속받고, 변경 사항들을 추가로 지정해줍니다.
from .local import *
DEBUG = False
- 실행은 다음의 명령어로 가능합니다. 원하는 환경의 설정 파일을 실행해주면 이를 바탕으로 서버가 실행됩니다. 이 과정에서 충돌이 나지 않고 서버가 잘 실행된다면, 설정이 정상적으로 완료된 것입니다.
python manage.py runserver --settings=myproejct.settings.development
python manage.py runserver --settings=myproejct.settings.production
참고 자료:
https://ehfgk78.github.io/2018/02/02/Django-Settings_Requirements/
https://wikidocs.net/75560
https://cjh5414.github.io/django-settings-separate/
반응형
'Django' 카테고리의 다른 글
장고 SECRET_KEY 관리 방법: 환경 변수와 로컬 파일 설정 (0) | 2022.03.13 |
---|---|
장고 get_or_create()와 race condition 문제 (0) | 2022.03.05 |
장고 Q를 활용한 필터링, 정렬, 검색 방법 (0) | 2022.02.20 |
장고에서 HTTP GET, POST 요청 처리하는 방법 (0) | 2022.02.20 |
장고 ORM과 쿼리셋의 개념 (0) | 2022.02.07 |