settings.py 란?
이름에서도 알 수 있듯이 프로젝트에 관한 환경을 설정하는 파일이다.
프로젝트에 celery, restframework 등과 같은 모듈을 추가하게 되면, settings.py에 설정해야 하는 부분들이 추가되기 때문에 settings.py가 복잡해진다.
이전에는 개발환경, 배포환경 등 실행환경별로 settings.py를 분류하여 관리하였는데, 이번에 프로젝트를 진행하면서 settings.py를 기능별로도 분류하여 관리한다는 것을 알게 되었다.
settings.py를 기능(모듈)별로 분리해보자.
프로젝트명: backend
1. settings 디렉터리 생성
django 프로젝트 안에 settings 이름으로 디렉터리를 생성한다.
생성한 settings 디렉터리 안에 __init__.py 파일을 생성한다.
pycharm을 사용한다면, 설정을 settings디렉터리로 다시 설정해줘야 터미널에서 에러가 나타나지 않는다.
2. settings.py 경로 및 이름 변경
git mv 명령어를 통해 settings.py 를 settings/base.py로 변경한다.
base.py 는 공통 설정에 대한 것들을 모아 놓은 파일이다.
# settings.py 가 존재하는 경로에서
git mv settings.py settings/base.py
3. __init__.py 에 임포트문 추가
임포트문을 추가하여 패키지처럼 관리할 수 있다.
# settings/__init__.py
from .base import *
4. 그 외 파일 추가
진행하는 프로젝트에서 celery, jazzmin, restframework 를 추가적으로 사용하게 되었다.
그래서 celery에 대한 설정은 celery.py를 만들어 그 파일 안에 작성하였다. (jazzmin, restframework 동일)
그리고 __init__.py 안에 .celery안에 있는 모든 것을 가져오도록 *(애스터리스크)로 임포트하였다.
아래 사이트에는 settings.py를 운영환경에 따라 실행 할 로컬 환경(개발환경), 서버 환경으로 분리하는 방법을 소개한다.
'프레임워크(Framework) > Django' 카테고리의 다른 글
[Django] on_delete 옵션 (0) | 2022.09.20 |
---|---|
[Django/Field]null vs blank (0) | 2022.09.20 |
[Django] Django 설치 및 프로젝트 생성 (0) | 2022.09.20 |
[Django|Postgre]postgreSQL설치 및 연동 (0) | 2021.12.06 |
[Django] 프로젝트와 앱 생성하기(+가상환경) ref.DjangoGirls (0) | 2021.11.19 |