Menu
CoddyTech

TemplateView

Thuộc phần View dựa trên lớp trong hành trình Django của Coddy. Bài học 2 trên 18.

Bảng việc làm cần có trang Giới thiệu chỉ hiển thị một mẫu. Django có một lớp dành cho việc này, TemplateView. Phương thức get() đã được viết sẵn: phương thức này hiển thị mẫu có tên trong template_name. Một trang web công thức nấu ăn lưu mục câu hỏi thường gặp trong recipes/templates/recipes/pages/faq.html:

from django.views.generic import TemplateView


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

Đó là toàn bộ lớp hiển thị. Django gọi các lớp hiển thị dựng sẵn là lớp hiển thị tổng quát. Bạn thiết lập một lớp bằng các thuộc tính của lớp như template_name, rồi đoạn code Django viết sẽ đọc các thuộc tính đó.

template_name là tên bạn sẽ truyền vào render(): đường dẫn của tệp tính từ sau templates/. Bỏ sót một thư mục thì trang sẽ gặp lỗi TemplateDoesNotExist. Khai báo tuyến đường cũng giống như với mọi lớp hiển thị dựa trên lớp: path("faq/", views.FaqView.as_view(), name="faq").

challenge icon

Thử thách

Dễ

Hiển thị mẫu có sẵn jobs/templates/jobs/about.html tại /about/.

  1. Trong jobs/views.py, thêm AboutView, một TemplateView để hiển thị mẫu đó.
  2. Trong jobs/urls.py, thêm tuyến đường "about/" có tên about.

Mở /about/: trang hiển thị Job Board lists jobs at small tech companies in Berlin, Lisbon and London.

Tự làm thử

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})

Tất cả bài học trong View dựa trên lớp

Tự luyện tập: Playground Django