Skip to content
Joona Yoon edited this page Dec 29, 2017 · 2 revisions

개요

이 프로젝트에는 dmoj/settings.pydmoj/local_settings.py가 있다.

dmoj/settings.py는 기본적으로 필요한 설정이 작성되어있으므로 settings.py를 잘 모르면 건드리지 말 것.

이 문서는 local_settings.py에 대한 내용을 기술할 것이다. 따라서 앞으로 말할 settingslocal_settings.py를 의미한다.

Variables

local_settings.py는 로드 순서가 settings.py가 나중에 있어서, 변수가 오버로딩 되는 것에 주의해야 한다.

이름 앞에 *이름으로 표시된 변수는 필수항목이다.

DEBUG

다음과 같이 사용된다.

DEBUG=True

디버깅 모드로 어플리케이션을 구동하고 싶다면 True를, 아니라면 False를 대입한다.

INSTALLED_APPS

Django에서 어떤 app을 사용하려할 때, Django core가 알 수 있도록 app을 등록하는 용도로 사용된다.

주로 Third-party를 사용하면 이 변수를 수정한다.

DATABASES

*STATIC_ROOT

사이트의 static 파일들이 저장될 디렉토리를 지정한다.

python manage.py collectstatics를 할 때, 이 변수를 확인한다.

ADMINS

여러 개의 ('<user name>', '<user email>')를 가진 tuple로 구성된다.

서버에서 보고할만한 오류(이슈)가 발생하면 등록된 이메일 계정으로 오류 메시지를 발송해준다.

메일 서버를 먼저 등록해야 하지만, 이 프로젝트는 현재 sendgrid를 등록해놨으니 잘 동작할 것이다. (외부 메일 서버 사용하기 - Sendgrid를 참고)

PROBLEM_DATA_ROOT

PROBLEM_DATA_ROOT는 문제의 채점 데이터를 저장할 디렉토리를 지정한다.

실제로 채점을 하는 judge에서도 같은 디렉토리를 지정해야한다.

주소 표현

settings도 모듈이기 때문에, Python의 다른 라이브러리를 사용할 수 있다. 주소는 보통 먼저 정의된 BASE_DIR을 사용하거나, os.path.join 등의 라이브러리를 사용하여 상대 주소를 절대 주소로 변환한다.