Django templateview

Django templateview

·

1 min read

django templateview

프로젝트 파일의 urls.py 에서 view를 include로 지정하지 않고,
templateview를 사용하여 바로 지정할 수 있다.

해당 페이지로 이동할때만 사용 가능하며,
앱폴더 안에 있는 내용들을 사용할 때는 include를 사용한다.

from django.urls import path
from django.views.generic import TemplateView

urlpatterns = [
    path("about/", TemplateView.as_view(template_name="about.html")),
]

적용

project/settings.py 에 들어가서 DIRS를 'DIRS': [BASE_DIR / 'templates']로 바꿔준다.

여기서 BASE_DIR은 BASE_DIR = Path(__file__).resolve().parent.parent
즉, 프로젝트 파일을 말한다.

BASE_DIR / 'templates'는 프로젝트의 루트 디렉토리에 있는 templates 디렉토리를 가리키고,
project/settings.py에서 DIRS 설정을 수정하여 템플릿 파일이 위치한 디렉토리를 지정할 있다.
이렇게 함으로써 django는 템플릿 파일을 찾을 때 해당 디렉토리를 검색하게 된다.

project/url에서 templateview를 사용하여 main.html을 찾아 사용한다.


사용 코드

project/urls

from django.contrib import admin
from django.urls import path
from django.views.generic import TemplateView

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', TemplateView.as_view(template_name = 'main.html')),   
]

project/settings.py

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',
            ],
        },
    },
]