장고에서는 개발 환경에 따라 settings.py를 구분하여 목적에 맞게 서버 환경을 설정할 수 있습니다. 환경을 분리하는 이유는 원활한 협업, 코드의 유지 보수, 공개/비공개 처리, 라이브러리 및 데이터베이스 관리 등을 위해서입니다.
개발 환경에는 기본적으로 서버에 연결하지 않으나 공통 사항들을 공유하는 local과 base가 있으며, AWS S3, RDS 등에 연동한 development, 이를 실제로 배포하는 production이 있습니다.
장고 settings.py 분리하는 방법
settings.py가 있는 로컬 환경에서settings디렉토리를 생성합니다.
mkdir settings- 이를 패키지화 해서 사용할 것이므로
__init__.py를 생성해줍니다.
cd settings
touch __init__.pysettings.py의 이름을development.py로 변경하고 생성한 디렉토리를 이동합니다.
mv settings.py development.py
mv settings.py ./settingsdevelopment.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.developmentpython 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 |
