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 getopt 参数处理小示例
Jun 09 Python
python 循环遍历字典元素的简单方法
Sep 11 Python
Python基于sftp及rsa密匙实现远程拷贝文件的方法
Sep 21 Python
再谈Python中的字符串与字符编码(推荐)
Dec 14 Python
Python使用三种方法实现PCA算法
Dec 12 Python
Python简单计算文件MD5值的方法示例
Apr 11 Python
python3+PyQt5 创建多线程网络应用-TCP客户端和TCP服务器实例
Jun 17 Python
python实现输入任意一个大写字母生成金字塔的示例
Oct 27 Python
Python线程指南分享
Nov 19 Python
keras分类模型中的输入数据与标签的维度实例
Jul 03 Python
python利用while求100内的整数和方式
Nov 07 Python
python使用BeautifulSoup 解析HTML
Apr 24 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写的资源下载防盗链类分享
2014/05/12 PHP
Javascript select下拉框操作常用方法
2009/11/09 Javascript
50款非常棒的 jQuery 插件分享
2012/03/29 Javascript
JavaScript 模式之工厂模式(Factory)应用介绍
2012/11/15 Javascript
js获取当月最后一天实例代码
2013/11/19 Javascript
JavaScript实现twitter puddles算法实例
2014/12/06 Javascript
jQuery中clone()方法用法实例
2015/01/16 Javascript
avalon js实现仿google plus图片多张拖动排序附源码下载
2015/09/24 Javascript
前端性能优化及技巧
2016/05/06 Javascript
js获取客户端操作系统类型的方法【测试可用】
2016/05/27 Javascript
seajs学习教程之基础篇
2016/10/20 Javascript
使用JavaScript判断用户输入的是否为正整数(两种方法)
2017/02/05 Javascript
详解vue-cli 脚手架项目-package.json
2017/07/04 Javascript
JS中的回调函数实例浅析
2018/03/21 Javascript
JavaScript中的一些实用小技巧总结
2019/04/07 Javascript
vue项目打包上传github并制作预览链接(pages)
2019/04/19 Javascript
js微信分享接口调用详解
2019/07/23 Javascript
layui table 复选框跳页后再回来保持原来选中的状态示例
2019/10/26 Javascript
[07:52]2014DOTA2 TI逗比武士游V社解说背后的故事
2014/07/10 DOTA
[55:54]FNATIC vs EG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
WINDOWS 同时安装 python2 python3 后 pip 错误的解决方法
2017/03/16 Python
浅析Git版本控制器使用
2017/12/10 Python
利用Python绘制有趣的万圣节南瓜怪效果
2019/10/31 Python
keras分类模型中的输入数据与标签的维度实例
2020/07/03 Python
python操作链表的示例代码
2020/09/27 Python
HTML5之WebGL 3D概述(下)—借助类库开发及框架介绍
2013/01/31 HTML / CSS
红色康乃馨酒店:Red Carnation Hotels
2017/06/22 全球购物
薇姿法国官网:Vichy法国
2021/01/28 全球购物
普通PHP程序员笔试题
2016/01/01 面试题
一套SQL笔试题
2016/08/14 面试题
《夸父追日》教学反思
2014/02/26 职场文书
班主任对学生的评语
2014/04/26 职场文书
不错的求职信范文
2014/07/20 职场文书
春季运动会加油词
2015/07/18 职场文书
PHP面试题 wakeup魔法 Ezpop pop序列化与反序列化
2022/04/11 PHP
Go gorilla/sessions库安装使用
2022/08/14 Golang