이번에는 templates 폴더에 대한 탐구를 해볼까 한다.
기본적으로 우리가 처음 Django Project를 시작하면 settings.py에 다음과 같이 설정되어 있다:
# settings.py
...
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'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',
],
},
},
]
...
여기에 보면 'APP_DIRS': True 라고 명시되어 있는 부분이 있을 것이다. 이것은 template의 directory가 우리가 만든 app들에 있다는 것이다. 하지만 app이 여러개로 늘어나고, template html들도 무수히 늘어날 때, 이 template들을 app 자체에서 관리하기에는 매우 비효율적이고 깔끔하지 않다. 따라서 보통은, Root Directory 바로 아래에 template 폴더를 만들어, 거기에 모든 template html들을 관리하는 것이 편하다.
example_project
ㄴbase_app
ㄴ...
ㄴexample_project
ㄴ...
ㄴtemplates
ㄴdb.sqlite3
ㄴmanage.py
이렇게 project 폴더 바로 아래에 templates라는 폴더를 만들어 주는 것이다. 그리고 Django Convention에 따라, base_app과 관련된 template html들을 만들꺼라면, template 아래에 바로 base_app이라는 폴더를 또 생성시켜준다:
example_project
ㄴbase_app
ㄴ...
ㄴexample_project
ㄴ...
ㄴtemplates
ㄴbase_app
ㄴ...
ㄴdb.sqlite3
ㄴmanage.py
하지만 이렇게 한다고 해도, template directory를 우리가 따로 설정한 것이 없기 때문에, Django는 우리가 만든 app들에서 templates 폴더를 찾을 것이다. 따라서 이를 방지하기 위해, 우리는 Root Directory 바로 아래에 있는 templates 폴더로 지정을 해주어야 한다:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [BASE_DIR / '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',
],
},
},
]
이를 통해 우리는 이제 Root Directory 바로 아래에 있는 templates 폴더에서 html들을 저장시키고 다루는 것이 가능해졌다.
'Django 공부하기' 카테고리의 다른 글
<Django 공부하기> @property decorator 알아보기 (0) | 2020.11.18 |
---|---|
<Django 공부하기> 회원탈퇴 구현하기 (2) - 본인인증 후 회원탈퇴 (Deleting User After Authentication) - cleaned_data / widgets / (0) | 2020.11.16 |
<Django 공부하기> Customizing Admin Page (1) - Customizing Users Page (0) | 2020.11.13 |
<Django 공부하기> 회원탈퇴 구현하기 (1) - 단순 회원탈퇴 (No Password Needed) (0) | 2020.11.12 |
<Django 공부하기> Forgot ID? 구현하기 (0) | 2020.11.10 |