TemplateView – Django基于类的通用视图

TemplateView – Django基于类的通用视图

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

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

TemplateView在以下情况下最适合。

  • 显示 “关于我们 “这样的页面,是静态的,几乎不需要任何上下文。虽然,使用TemplateView的上下文变量是很容易的。
  • 显示使用GET请求的页面,并且其中没有表单。

解释:

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

请参考以下文章,查看如何在Django中创建一个项目和一个应用程序。

如何在Django中使用MVT创建一个基本项目?

如何在Django中创建一个应用程序?

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

  • 在geeks应用程序的views.py文件中输入以下代码。
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")
  • 在geeks应用程序中创建一个名为templates的文件夹,然后在templates文件夹中创建一个名为aboutus.html的文件。
  • 在aboutus.html文件中输入以下代码。
<!DOCTYPE html>
<html>
<head>
<title>AboutUs</title>
</head>
<body>
<h2>Welcome To GFG</h2>
</body>
</html>
  • 在geeksforgeeks项目文件夹的urls.py中输入以下代码。
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也可以实现同样的输出,用下面的代码替换geeks应用程序的views.py文件的代码。
from django.views.generic.base import TemplateView
 
class AboutUs(TemplateView):
    template_name = 'aboutus.html'

让我们检查一下http://localhost:8000/ 上的内容。

输出 –

TemplateView - 基于类的通用视图 Django

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程