TemplateView – 基于类的通用视图 Django
Django 提供了几个基于类的通用视图来完成常见任务。其中最简单的是TemplateView。它呈现给定的模板,上下文包含在 URL 中捕获的参数。
当您想在 HTML 页面上显示一些信息时,应该使用 TemplateView。当您的页面具有表单并创建或更新对象时,不应使用 TemplateView。在这种情况下,FormView、CreateView 或 UpdateView 是更好的选择。
TemplateView 最适合以下情况:
- 像静态页面一样显示“关于我们”,几乎不需要任何上下文。不过,在 TemplateView 中使用上下文变量很容易。
- 显示处理 GET 请求但其中没有表单的页面。
解释 :
使用示例说明如何使用 TemplateView。考虑一个名为 geeksforgeeks 的项目,它有一个名为 geeks 的应用程序。
Refer to the following articles to check how to create a project and an app in Django.
How to Create a Basic Project using MVT in Django ?
How to Create an App in Django ?
让我们使用基类视图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/ 上有什么
输出 -