점프 투 장고 (세팅 파일) 관련하여 공유합니다!
현재 책을 보면,
장고의 세팅 파일들은 다음과 같이 구성되어 있습니다.
import os
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
하지만, 장고 세팅 파일 3.1 이상의 최신 버전을 다운로드 하는 순간
from pathlib import Path
# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve(strict=True).parent.parent
이런 세팅 파일들을 만나게 됩니다.
https://adamj.eu/tech/2020/03/16/use-pathlib-in-your-django-project/
를 참조하면, os.path를 설정하는 것이 pathlib의 Path를 이용하는 것으로 바뀌게 된 것 같습니다.
따라서, 이런 설정으로 하시는 최근 장고 입문하시는 분은
from pathlib import Path
# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve(strict=True).parent.parent
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [str(BASE_DIR.joinpath('templates'))],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
STATIC_URL = '/static/'
STATICFILES_DIRS = [
BASE_DIR / "static",
'/projects/mysite/static/',
]
로 설정하고, 4-06 이후 settings 파일 분리 시 parent 요소가 추가되어
base.py를
from pathlib import Path
# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve(strict=True).parent.parent.parent
로 설정하시면 문제없이 실행됩니다.
4-11 이후 prod.py를
from .base import *
----------edit
STATIC_ROOT = BASE_DIR / 'static/'
STATICFILES_DIRS = []
DEBUG = False
로 설정하면 정상 작동 됩니다.
완전 노베이스 비전공자라서, 글을 맞게 작성하였는 지는 모르겠습니다.
선생님께서 보시고, 추가해주면 좋지 않을까 생각이 듭니다!
감사합니다.
sismis123 님 1954
M 2020년 9월 19일 8:54 오후
2개의 답변이 있습니다. 1 / 1 Page
"점프 투 장고" 도 장고 3.1.1 버전에 맞추어 pathlib를 사용하도록 내용이 개편되었습니다.
장고 3.1 로 버전업되면서 pathlib 를 사용하도록 settings.py 내용이 바뀐것 같네요.
"점프 투 장고" 도 알려주신 내용 참조하여 수정해야 겠네요.
잘 정리해 주셔서 감사합니다.
박응용 님
M 2020년 9월 28일 11:34 오전