본문 바로가기
Django/Django개념

settings.py 살펴보기

by hyun-am 2020. 11. 17.

settings.py란

장고에서 settings.py는 프로젝트에 관련된 다양한 설정들이 들어 있습니다. 예를 들면 데이터베이스 설정, 애플리케이션 등록, 템플릿 항목 설정, 정적 파일 설정, 타임존 지정 등이 있는데 settings.py에 기록 되지 않는 내용들도 있는데 이것은 개발하면서 차근차근 입력해서 사용하시면 됩니다.

먼저 기존에 있는 항목들을 살펴 보겠습니다.

BASE_DIR

개발 진행 시 프로젝트 루트 폴더, 설정 파일이나 py파일들을 찾을 일이 많은데 이때 효율적으로 사용하기 위해 변수명으로 미리 지정해 두는 값입니다.

초기 값은 다음과 같습니다.

 

또한 경로에 대한 참고 내용은 다음과 같습니다.

 

만약 ~/home/desktop/[개발폴더] 안에 장고 프로젝트를 진행한다면 구조는 다음과 같습니다.

  • 프로젝트 베이스(루트)디렉터리 : ~/home/desktop/[개발폴더]
  • 프로젝트 디렉터리 : ~/home/desktop/[개발폴더]/[프로젝트이름]
  • 프로젝트 템플릿 디렉터리 : ~/home/desktop/[개발폴더]/templates
  • 앱 템플릿 디렉터리 : ~/home/desktop/[개발폴더]/[앱이름]/templates

SECRET_KEY

다양한 보안을 위해 사용됩니다. 세션 값의 보호나 비밀번호 변경시 사용되는 보안 URL을 만드는 등의 일에 주로 사용합니다. 이것은 임의로 변경할 수 있으나 변경하면 로그인이 풀릴 수도 있는 부작용이 있습니다. 나중에 SECRET_KEY를 secret.json과 같은 파일을 만들어서 배포시 비밀을 유지하는 과정을 보여주겠습니다.

DEBUG

이 항목은 True와 False로 지정할 수 있는데 먼저 True인 상태면 오류 메세지들을 템플릿으로 즉시 확인할 수 있습니다. 하지만 False일 경우 오류가 발생해도 디버깅 페이지를 표시 하지 않습니다. 이때 다양한 response를 활용하여 400, 404,500 등 다양한 오류 페이지들을 핸들러를 통해 표현할 수 있습니다. 이것 또한 나중에 구현 방법을 작성해보도록 하겠습니다.

ALLOWED_HOSTS

현재 서비스의 호스트를 설정합니다. 개발시에는 빈상태나 자신의 로컬호스트, IP주소 또는 전체를 상징하는 '*'를 입력합니다. 하지만 배포시 주의하도록 하겠습니다.

INSTALLED_APPS

Django는 다양한 앱들로 이루어져 있습니다. 여기서 현재 프로젝트에서 사용하는 앱들의 목록들을 입력해줍니다.

만약 앱을 생성하고 이곳에 작성 하지 않으면 오류가 발생합니다. 꼭 앱을 생성한 다음 이곳 목록에 작성을 해야 합니다.

MIDDLEWARE

장고의 모든 요청/응답 메시지 사이에 실행되는 특수한 프레임워크들입니다. 주로 장고에서 보안에 관련된 항목들을 작성할 때 사용합니다. 예를 들면 CORS와 같은 에러를 처리할때도 이곳을 통해 처리합니다.

 

ROOT_URLCONF

기준이 되는 URL파일의 경로를 표시합니다. 대부분의 프로젝트는 프로젝트명.urls를 입력해서 프로젝트 파일내에서 url들을 관리합니다.

WSGI_APPLICATION

나중에 uwsgi를 사용할때 실행을 위한 wsgi 어플리케이션을 설정합니다. 되도록 기본값으로 유지하는 것이 좋습니다.

DATABASE

데이터 베이스 관련 설정입니다. 기본적으로는 sqlite로 설정 되어 있습니다. 만약 데이터 베이스 설정을 바꾸고 싶으면 다음과 같은 경로를 통해 참고하시면 되겠습니다.

 

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

 

Settings | Django documentation | Django

Django The web framework for perfectionists with deadlines. Overview Download Documentation News Community Code Issues About ♥ Donate

docs.djangoproject.com

AUTH_PASSWORD_VALIDATORS

비밀번호 검증을 위한 설정입니다. 기번적으로 들어 있는 검증 규칙은 사용자 정보와 유사한지, 숫자로 만들었는지, 너무 짧은지 평범한 비밀번호 인지 장고에서 이것들을 처리해주기 위해 선언합니다.

 

LANGUAGE_CODE

마지막으로 이 부분은 앞에서도 설명한 적이 있습니다. 이 구역은 다국어에 관한 설정들 입니다. 이 곳을 통해 손쉽게 다국어 서비스를 만들 수 있습니다.

 

또한 모르는 내용이 있으면 각 항목마다 장고 공식 홈페이지가 링크 걸려 있는것을 확인할 수 있습니다. 그곳에 들어가서 자세한 내용을 확인하면 되겠습니다. 

'Django > Django개념' 카테고리의 다른 글

왜 Django에서 PostgreSQL을 DB로 사용할까?  (0) 2020.12.01
models.py 살펴보기  (0) 2020.11.18
Django를 사용하는 이유  (0) 2020.11.17
Django를 이용한 웹 API 만들기  (0) 2020.10.26
002. Django App 만들기  (0) 2019.08.15

댓글