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 代码性能优化技巧分享
Aug 07 Python
Python通过递归遍历出集合中所有元素的方法
Feb 25 Python
python 连接各类主流数据库的实例代码
Jan 30 Python
Python实现登陆文件验证方法
Oct 06 Python
Python实现12306火车票抢票系统
Jul 04 Python
python文档字符串(函数使用说明)使用详解
Jul 30 Python
python多进程下的生产者和消费者模型
May 07 Python
Python使用socket模块实现简单tcp通信
Aug 18 Python
使用python爬取抖音app视频的实例代码
Dec 01 Python
Python 随机按键模拟2小时
Dec 30 Python
Python自动化之批量处理工作簿和工作表
Jun 03 Python
python生成可执行exe控制Microsip自动填写号码并拨打功能
Jun 21 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
下载文件的点击数回填
2006/10/09 PHP
php array_merge函数使用需要注意的一个问题
2015/03/30 PHP
php遍历CSV类实例
2015/04/14 PHP
php封装的mongodb操作类代码
2017/08/06 PHP
PHP中实现中文字串截取无乱码的解决方法
2018/05/29 PHP
js 格式化时间日期函数小结
2010/03/20 Javascript
ExtJs设置GridPanel表格文本垂直居中示例
2013/07/15 Javascript
Node.js编码规范
2014/07/14 Javascript
《JavaScript DOM 编程艺术》读书笔记之JavaScript 图片库
2015/01/09 Javascript
JS 通过系统时间限定动态添加 select option的实例代码
2016/06/09 Javascript
jquery.form.js异步提交表单详解
2017/04/25 jQuery
NodeJs模拟登陆正方教务
2017/04/28 NodeJs
angular 用拦截器统一处理http请求和响应的方法
2017/06/08 Javascript
Vue实现移动端页面切换效果【推荐】
2018/11/13 Javascript
基于Node.js的大文件分片上传示例
2019/06/19 Javascript
浅谈React中组件逻辑复用的那些事儿
2020/05/21 Javascript
python pickle 和 shelve模块的用法
2013/09/16 Python
python实现挑选出来100以内的质数
2015/03/24 Python
ubuntu安装mysql pycharm sublime
2018/02/20 Python
Python实现随机漫步功能
2018/07/09 Python
Python绘制动态水球图过程详解
2020/06/03 Python
Django DRF认证组件流程实现原理详解
2020/08/17 Python
Django正则URL匹配实现流程解析
2020/11/13 Python
CSS3中的Transition过度与Animation动画属性使用要点
2016/05/20 HTML / CSS
澳大利亚男士西服品牌:M.J.Bale
2018/02/06 全球购物
英国Boots旗下太阳镜网站:Boots Designer Sunglasses
2018/07/07 全球购物
街头时尚在线:JESSICABUURMAN
2019/06/16 全球购物
Currentbody德国站:健康与美容技术专家
2020/04/05 全球购物
德国便宜的宠物店:Brekz.de
2020/10/23 全球购物
优乐美广告词
2014/03/14 职场文书
邓小平理论心得体会
2014/09/09 职场文书
交通事故委托书范本精选
2014/10/04 职场文书
公司前台接待岗位职责
2015/04/03 职场文书
教你如何用python开发一款数字推盘小游戏
2021/04/14 Python
Oracle 区块链表创建过程详解
2021/05/15 Oracle
SQL Server中常用截取字符串函数介绍
2022/03/16 SQL Server