📜  TemplateView – 基于类的通用视图 Django

📅  最后修改于: 2022-05-13 01:55:19.364000             🧑  作者: Mango

TemplateView – 基于类的通用视图 Django

Django 提供了几个基于类的通用视图来完成常见任务。其中最简单的是TemplateView。它呈现给定的模板,上下文包含在 URL 中捕获的参数。

当您想在 HTML 页面上显示一些信息时,应该使用 TemplateView。当您的页面具有表单并创建或更新对象时,不应使用 TemplateView。在这种情况下,FormView、CreateView 或 UpdateView 是更好的选择。

TemplateView 最适合以下情况:

  • 像静态页面一样显示“关于我们”,几乎不需要任何上下文。不过,在 TemplateView 中使用上下文变量很容易。
  • 显示处理 GET 请求但其中没有表单的页面。

解释 :

使用示例说明如何使用 TemplateView。考虑一个名为 geeksforgeeks 的项目,它有一个名为 geeks 的应用程序。

让我们使用基类视图View 编写一个视图,然后修改它以使用TemplateView。 TemplateView 将帮助我们避免几行代码。

  • 在 geeks 应用的 views.py 文件中输入以下代码。
Python3
from django.views.generic.base import View
from django.shortcuts import render
 
class AboutUs(View):
  def get(self, request, *args, **kwargs):
        return render(request, "aboutus.html")


HTML



AboutUs


Welcome To GFG



Python3
from django.contrib import admin
from django.urls import path
from geeks.views import AboutUs
 
urlpatterns = [
    path('admin/', admin.site.urls),
      path('',AboutUs.as_view(),name="aboutus")
]


Python3
from django.views.generic.base import TemplateView
 
class AboutUs(TemplateView):
    template_name = 'aboutus.html'


  • 在 geeks 应用程序中创建一个名为 templates 的文件夹,然后在 templates 文件夹中创建一个名为 aboutus.html 的文件。
  • 在 aboutus.html 文件中输入以下代码。

HTML




AboutUs


Welcome To GFG

  • 在 geeksforgeeks 项目文件夹的 urls.py 中输入以下代码。

蟒蛇3

from django.contrib import admin
from django.urls import path
from geeks.views import AboutUs
 
urlpatterns = [
    path('admin/', admin.site.urls),
      path('',AboutUs.as_view(),name="aboutus")
]


  • 运行以下三个命令以查看输出。
Python manage.py makemigrations
Python manage.py migrate
Python manage.py runserver
  • 使用 TemplateView 可以实现相同的输出,用下面给出的代码替换极客应用程序的 views.py 文件的代码。

蟒蛇3

from django.views.generic.base import TemplateView
 
class AboutUs(TemplateView):
    template_name = 'aboutus.html'

让我们检查一下 http://localhost:8000/ 上有什么

输出 -