Menu
CoddyTech

TemplateView

Coddy Django 여정의 클래스 기반 뷰 섹션에 포함된 레슨. 18개 중 2번째.

구인 게시판에는 템플릿만 렌더링하는 소개 페이지가 필요합니다. Django에는 이를 위한 클래스인 TemplateView가 있습니다. 해당 클래스의 get()은 이미 작성되어 있으며, template_name에 지정된 템플릿을 렌더링합니다. 레시피 사이트는 FAQ를 recipes/templates/recipes/pages/faq.html에 보관합니다.

from django.views.generic import TemplateView


class FaqView(TemplateView):
    template_name = "recipes/pages/faq.html"

이것이 뷰의 전부입니다. Django는 미리 만들어 둔 뷰 클래스를 제네릭 뷰라고 부릅니다. template_name 같은 클래스 속성을 설정하면 Django가 작성한 코드가 그 값을 읽습니다.

template_name은 render()에 전달할 이름, 즉 templates/ 뒤에 오는 파일 경로입니다. 폴더를 하나라도 빼면 TemplateDoesNotExist 오류가 발생합니다. 경로는 다른 클래스 기반 뷰와 마찬가지입니다. path("faq/", views.FaqView.as_view(), name="faq").

challenge icon

챌린지

쉬움

준비된 템플릿 jobs/templates/jobs/about.html을 /about/에서 표시하세요.

  1. jobs/views.py에 이를 렌더링하는 TemplateView인 AboutView를 추가하세요.
  2. jobs/urls.py에 이름이 about인 경로 "about/"를 추가하세요.

/about/을 여세요. 다음 문구가 표시됩니다. Job Board lists jobs at small tech companies in Berlin, Lisbon and London.

직접 해보기

from django.shortcuts import render
from django.views import View

from .models import Job


class HomeView(View):
    def get(self, request):
        count = Job.objects.count()
        return render(request, "jobs/home.html", {"count": count})

클래스 기반 뷰의 모든 레슨

직접 연습해 보세요: Django 플레이그라운드