django模板语法学习之include示例详解


Posted in Python onDecember 17, 2017

前言

在很多网站中,基本上的都会有一个开头和一个结尾,在每一个网页中都会显示。相对于这种的来说,在Django中,最好的方法就是使用include的标签,在每一个模板中都加入这个开头和结尾的标签。

include标签使用

假如我们有以下模板index.html,代码为:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Title</title>
</head>
<body>
<div>网页公共头部部分</div>
<h2> 网页body部分 </h2>
<div>网页公共底部部分</div>
</body>
</html>

做过web开发的童鞋知道大部分网页的公共头部,公共底部部分代码每个页面都一样,那么就应该将其单独拿出做为一个html, 这样修改这部分代码时候,不需要每个页面都修改, 所以在django中我们可以这么做:

top.html

<div>网页公共头部部分</div>

bottom.html

<div>网页公共底部部分</div>

index.html

<!DOCTYPE html> 
<html lang="en"> 
<head> 
 <meta charset="UTF-8"> 
 <title>Title</title> 
</head> 
<body> 
{% include 'top.html' %} 
<h2> 网页body部分 </h2> 
{% include 'bottom.html' %} 
</body> 
</html>

我们可以使用django模板引擎的Include语法,来将单独的页面包含到当前模板页面中。有同学有疑问,那我们通过视图传递给模板的上下文,在被包含的模板中可以使用吗?可以直接使用。

假如我们有如下视图: 

def index(request): 
 return render(request, 'index.html', {'a': 100, 'b': 200})

该django的视图函数,传递给模板并渲染模板。

top.html修改如下:

<div>网页公共头部部分:{{ a }}</div>

这么使用是没有问题的。

我这里有这样的一个问题,假如所有的页面都使用共同的头部top.html, 可能针对1.html 2.html 3.html所使用的头部有些样式不一样,所需top.html:

<div classs='acss'>网页公共头部部分</div>

但是对于5.html, 6.html使用的头部样式为:

<div class='bcss'>网页公共头部部分</div>

 

很显然,如果直接通过include方式包含公共头部,会导致一些页面显示问题。既然部分参数不一样,include允许我们传递参数给被include的模板,我们可以使用with语法,那么问题解决如下:

{{ % include 'top.html' with mycss='acss' % }}

top.html可修改如下:

<div class='{{mycss}}'>网页公共头部部分</div>

被包含模板中部分参数,由我们include的时候动态指定,那么top.html就不会因为细微差别而编写多份代码了。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
Python 爬虫学习笔记之单线程爬虫
Sep 21 Python
详解如何在python中读写和存储matlab的数据文件(*.mat)
Feb 24 Python
利用Python yagmail三行代码实现发送邮件
May 11 Python
Python实现的拟合二元一次函数功能示例【基于scipy模块】
May 15 Python
python实现AES和RSA加解密的方法
Mar 28 Python
python地震数据可视化详解
Jun 18 Python
python3中使用__slots__限定实例属性操作分析
Feb 14 Python
使用pandas生成/读取csv文件的方法实例
Jul 09 Python
Python中可变和不可变对象的深入讲解
Aug 02 Python
Python中基础数据类型 set集合知识点总结
Aug 02 Python
一小时学会TensorFlow2之基本操作2实例代码
Sep 04 Python
Python中request的基本使用解决乱码问题
Apr 12 Python
详解python string类型 bytes类型 bytearray类型
Dec 16 #Python
python使用os.listdir和os.walk获得文件的路径的方法
Dec 16 #Python
python读取与写入csv格式文件的示例代码
Dec 16 #Python
浅谈用VSCode写python的正确姿势
Dec 16 #Python
numpy中索引和切片详解
Dec 15 #Python
Python实现简单网页图片抓取完整代码实例
Dec 15 #Python
利用numpy实现一、二维数组的拼接简单代码示例
Dec 15 #Python
You might like
php正则表达式使用的详细介绍
2013/04/27 PHP
phpmyadmin提示The mbstring extension is missing的解决方法
2014/12/17 PHP
php通过sort()函数给数组排序的方法
2015/03/18 PHP
PHP上传图片、删除图片简单实例
2016/11/12 PHP
PHP explode()函数用法讲解
2019/02/15 PHP
JavaScript设置FieldSet展开与收缩
2009/05/15 Javascript
Date对象格式化函数代码
2010/07/17 Javascript
关于javascript中this关键字(翻译+自我理解)
2010/10/20 Javascript
jQuery+ajax实现鼠标单击修改内容的思路
2014/06/29 Javascript
javascript工厂方式定义对象
2014/12/26 Javascript
Jquery中Event对象属性小结
2015/02/27 Javascript
react系列从零开始_简单谈谈react
2017/07/06 Javascript
vue jsx 使用指南及vue.js 使用jsx语法的方法
2017/11/11 Javascript
angularJS1 url中携带参数的获取方法
2018/10/09 Javascript
swiper.js插件实现pc端文本上下滑动功能示例
2018/12/03 Javascript
微信小程序云开发如何使用云函数生成二维码
2019/05/18 Javascript
js实现删除json中指定的元素
2020/09/22 Javascript
[02:14]完美“圣”典2016风云人物:xiao8专访
2016/12/01 DOTA
[02:00]最后,我终于出了辉耀
2018/03/27 DOTA
[00:27]DOTA2战队VP、Secret贺新春
2018/02/11 DOTA
python字符串排序方法
2014/08/29 Python
Python比较文件夹比另一同名文件夹多出的文件并复制出来的方法
2015/03/05 Python
linux查找当前python解释器的位置方法
2019/02/20 Python
python计算波峰波谷值的方法(极值点)
2020/02/18 Python
Python MOCK SERVER moco模拟接口测试过程解析
2020/04/13 Python
用Python实现定时备份Mongodb数据并上传到FTP服务器
2021/01/27 Python
CSS3移动端vw+rem不依赖JS实现响应式布局的方法
2019/01/23 HTML / CSS
Servlet的实例是在生命周期什么时候创建的?配置servlet最重要的是什么?
2012/05/30 面试题
Servlet面试题库
2015/07/18 面试题
暑期社会实践方案
2014/02/05 职场文书
市级青年文明号申报材料
2014/05/26 职场文书
2014年电厂个人工作总结
2014/11/27 职场文书
2015年学校后勤工作总结
2015/04/08 职场文书
增值税发票丢失证明
2015/06/19 职场文书
安全生产标语口号
2015/12/26 职场文书
“鬼灭之刃”热度不减,其成功背后的原因是什么?
2022/03/22 日漫