利用Django的视图类TemplateView将模板、视图与模板变量方便快速的整合在一起

news/2024/11/30 10:41:01/

TemplateView是Django提供的通用视图类之一,它允许您在不编写任何Python代码的情况下将模板与视图关联起来。下面是关于TemplateView类的一些介绍:

  1. 渲染模板:TemplateView负责渲染指定的模板并返回生成的HTML响应。您只需提供模板名称或路径即可,TemplateView将自动将其与相应的模板引擎关联起来。

  2. URL配置:您可以通过URL配置将TemplateView与特定的URL关联起来。这意味着当用户请求与该URL匹配的页面时,Django将自动调用TemplateView来处理请求。

  3. 上下文数据:您可以通过重写get_context_data方法向模板提供额外的上下文数据。这允许您在渲染模板之前向模板传递一些自定义的变量或对象。

  4. 类视图的优点:与函数视图相比,类视图具有许多优势。它们使代码更加模块化,易于维护和扩展。TemplateView作为类视图的一种形式,为开发人员提供了一个方便的方式来处理不需要太多逻辑处理的简单页面。

通过使用TemplateView,您可以轻松地将模板、视图、模板变量关联起来,而无需编写大量的重复代码,这对于构建简单的静态页面非常方便。

下面是一个简单的示例,展示如何使用TemplateView类:
E:\Python_project\P_001\myshop-test\myshop\app1\views_class.py 中的代码:

# -*- coding: utf-8 -*-from django.views.generic import TemplateViewclass TestTemplateView(TemplateView):# 设置模板文件template_name = "index.html"#  重写父类TemplateView中的get_context_data()方法def get_context_data(self, **kwargs):context = super().get_context_data(**kwargs)# 增加模板变量infocontext["info"] = "这里是昊虹君写的技术笔记-昊虹AI笔记"return context

E:\Python_project\P_001\myshop-test\myshop\templates\index.html 中的代码:

<div>这里是一个关于视图类TemplateView的示例<br>以下是通过重写父类TemplateView中的get_context_data()方法引入的新写的变量'info'的值<br>{{info}}
</div>

E:\Python_project\P_001\myshop-test\myshop\myshop\urls.py 中的代码:

from django.urls import path
from app1.views_class import TestTemplateViewurlpatterns = [path('test_templateview/', TestTemplateView.as_view()),
]

运行Django应用:

CD E:\Python_project\P_001\myshop-test\myshop
E:
python manage.py runserver 127.0.0.1:8010

访问下面的URL路径:

http://127.0.0.1:8010/test_templateview/

效果如下:
在这里插入图片描述
可见,通过视图类TemplateView很方便的把视图层中的模板和变量整合在了一起。


http://www.ppmy.cn/news/521031.html

相关文章

MySQL 高级(进阶) SQL 语句

创建两个表格 use awsl; create table location (Region char(20),Store_Name char(20)); insert into location values(East,Boston); insert into location values(East,New York); insert into location values(West,Los Angeles); insert into location values(West,Houst…

Mac上mx master鼠标移动卡顿问题的解决

从蓝牙换成优联连接。 默认1通道是USB连接&#xff0c;如果匹配过蓝牙的话通道的信号被占用了&#xff0c;需要下载软件匹配&#xff0c;您可以根据软件提示进行匹配的呢。 优联软件下载&#xff1a;https://support.logi.com/hc/articles/360025297913 &#xff08;如果打不开…

MX450和MX330的区别

MX450属于高端显卡&#xff0c;拥有GTX1650至少70%~80%的性能&#xff0c;可以将它理解为GTX1650的Max-Q的进一步缩水版&#xff0c;性能强劲 选mx450还是MX330这些点很重要 http://www.adiannao.cn/dq MX450采用了与游戏本用显卡GTX1650同源的TU117图灵架构核心&#xff0c;制…

.3mx模型文件动态导入unity

最近在弄一个模型动态导入unity的功能&#xff0c;给了一个.3mx文件格式的模型&#xff0c;需要在unity展示模型。 .3mx文件是无法直接在unity加载的&#xff0c;在一个相关插件项目时&#xff0c;.3mx在普通管线项目中是能够动态加载的&#xff0c;但是运用到HDRP项目中&#…

mx linux,MX linux什么鬼,坐上窜天猴了

好久没去DistroWatch网站&#xff0c;无意间打开发现mx linux发行版排第一了。记得2018年manjaro坐上了首位&#xff0c;怎么半年多久换天了&#xff1f; 我没有安装mx linux体验&#xff0c;主要是manjaro足够好用&#xff0c;没有动力体验更换一个机遇debian的发行版。manjar…

OSGB模型转3MX模型

OSGBLab支持将OSGB模型转成3MX模型&#xff0c; 首先软件下载 https://pan.baidu.com/s/1ZtoanNs1iHrYi2UkvjYwqA?pwd1234 打开软件后点击[OSGB转3MX]&#xff0c; 然后设置输入目录&#xff0c;输出目录和坐标系后&#xff0c;点击确定即可。 需要注意的是&#xff0c;输…

mx解析和邮件服务器,邮件交换记录(MX)解析和查询

邮件交换记录(MX)解析 第一步&#xff1a;先将域名mail.XXX.XXX用A记录解析到对应服务器IP&#xff0c;如&#xff1a;这里将mail.etlfreight.com用A记录解析到122.49.1.217; 第二步&#xff1a;将域名XXX.XXX用MX解析到mail.XXX.XXX&#xff0c;如这里将etlfreight.com用MX解析…

Mx_yolov3的安装并使用GPU训练

1.Mx_yolov3下载 首先我们的下载3.0版本&#xff0c;这一版功能更多&#xff0c;而且不用搭建环境。 下面这个是百度网盘提取 链接&#xff1a;https://pan.baidu.com/s/1Gl3Qfw5s8LZuu2wc1GTITg 提取码&#xff1a;dvsf 2.CUDA和CUDNN的下载 直接点击下面链接根据教程下载…