Django에서 Template 폴더 설정하는 방법
Django는 강력한 웹 프레임워크로, 템플릿 시스템을 통해 HTML 파일을 동적으로 렌더링할 수 있습니다. 이 글에서는 Django 프로젝트에서 템플릿 폴더를 설정하는 방법을 단계별로 설명하겠습니다.
Django 프로젝트 구조 이해
먼저, Django 프로젝트의 기본 디렉토리 구조를 이해하는 것이 중요합니다. 예를 들어, `myproject`라는 프로젝트와 `myapp`이라는 앱이 있는 경우, 기본적인 디렉토리 구조는 다음과 같습니다.
myproject/
myproject/
__init__.py
settings.py
urls.py
wsgi.py
myapp/
migrations/
__init__.py
admin.py
apps.py
models.py
tests.py
views.py
manage.py
프로젝트 수준 템플릿 폴더 설정
프로젝트 수준에서 템플릿 폴더를 설정하려면 `settings.py` 파일을 수정해야 합니다. `settings.py` 파일을 열고 `TEMPLATES` 설정을 찾아 다음과 같이 수정합니다
# myproject/settings.py
import os
from pathlib import Path
# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent
# ...
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(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',
],
},
},
]
# ...
이 설정은 프로젝트 루트에 `templates` 폴더를 생성하고, 이 폴더를 템플릿 디렉토리로 사용하겠다는 의미입니다. 이제 프로젝트 루트에 `templates` 폴더를 생성하세요.
myproject/
templates/
앱 수준 템플릿 폴더 설정
앱 수준에서 템플릿 폴더를 설정하려면 각 앱 폴더 내에 `templates` 폴더를 만들고, 그 안에 앱 이름과 동일한 폴더를 생성합니다. 예를 들어, `myapp`의 템플릿 폴더 구조는 다음과 같습니다:
myapp/
templates/
myapp/
example_template.html
이렇게 하면 각 앱의 템플릿들이 서로 충돌하지 않도록 관리할 수 있습니다.
템플릿 사용
이제 템플릿을 사용하려면 뷰에서 `render` 함수를 사용하여 템플릿 파일을 지정하면 됩니다.
# myapp/views.py
from django.shortcuts import render
def example_view(request):
return render(request, 'myapp/example_template.html')
위 코드에서 `example_view` 함수는 `example_template.html` 파일을 렌더링합니다. Django는 `TEMPLATES` 설정에서 지정한 디렉토리와 각 앱의 `templates` 폴더를 검색하여 템플릿 파일을 찾습니다.
결론
Django에서 템플릿 폴더를 설정하는 방법을 요약하면 다음과 같습니다:
- `settings.py` 파일에서 `TEMPLATES` 설정 수정
- 프로젝트 루트에 `templates` 폴더 생성
- 각 앱 폴더 내에 `templates`/<앱 이름> 폴더 생성
- 뷰에서 `render` 함수를 사용하여 템플릿 파일 지정
이러한 방법을 따르면 Django 프로젝트에서 템플릿 파일을 효율적으로 관리할 수 있습니다. Django의 템플릿 시스템을 활용하여 동적 웹 페이지를 쉽게 만들 수 있습니다.
'Programming > Django' 카테고리의 다른 글
Django에서 Python Logger 사용하기 (0) | 2024.07.05 |
---|---|
Django Template 생성하기 (0) | 2024.07.04 |