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使用simplejson模块解析JSON的方法
Mar 24 Python
numpy找出array中的最大值,最小值实例
Apr 03 Python
Python装饰器用法实例总结
May 26 Python
python添加模块搜索路径和包的导入方法
Jan 19 Python
Django学习笔记之为Model添加Action
Apr 30 Python
PyQt5创建一个新窗口的实例
Jun 20 Python
Django使用Channels实现WebSocket的方法
Jul 28 Python
python实现的读取网页并分词功能示例
Oct 29 Python
Python3和PyCharm安装与环境配置【图文教程】
Feb 14 Python
自定义Django Form中choicefield下拉菜单选取数据库内容实例
Mar 13 Python
python实现二分类和多分类的ROC曲线教程
Jun 15 Python
python如何获取网络数据
Apr 11 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项目的方法
2006/10/09 PHP
兼容各大浏览器带关闭按钮的漂浮多组图片广告代码
2014/06/05 PHP
PHPTree――php快速生成无限级分类
2018/03/30 PHP
php DES加密算法实例分析
2019/09/18 PHP
JavaScript中圆括号()和方括号[]的特殊用法疑问解答
2013/08/06 Javascript
浅析jquery ajax异步调用方法中不能给全局变量赋值的原因及解决方法
2014/01/10 Javascript
javascript Promise简单学习使用方法小结
2016/05/17 Javascript
Angularjs中$http以post请求通过消息体传递参数的实现方法
2016/08/05 Javascript
百度搜索框智能提示案例jsonp
2016/11/28 Javascript
vue监听滚动事件实现滚动监听
2017/04/11 Javascript
微信小程序 共用变量值的实现
2017/07/12 Javascript
jQuery实现鼠标响应式透明度渐变动画效果示例
2018/02/13 jQuery
利用adb shell和node.js实现抖音自动抢红包功能(推荐)
2018/02/22 Javascript
vue-cli项目根据线上环境分别打出测试包和生产包
2018/05/23 Javascript
jQuery中ajax请求后台返回json数据并渲染HTML的方法
2018/08/08 jQuery
Vue 处理表单input单行文本框的实例代码
2019/05/09 Javascript
js实现上传图片并显示图片名称
2019/12/18 Javascript
js+css实现扇形导航效果
2020/08/18 Javascript
Postman无法正常返回结果问题解决
2020/08/28 Javascript
Python多线程学习资料
2012/12/19 Python
Python正则表达式的使用范例详解
2014/08/08 Python
使用Python横向合并excel文件的实例
2018/12/11 Python
对Xpath 获取子标签下所有文本的方法详解
2019/01/02 Python
关于python scrapy中添加cookie踩坑记录
2020/11/17 Python
纯CSS3实现给头像加个光芒四射且旋转的背景动画效果
2014/05/07 HTML / CSS
为你的html5网页添加音效示例
2014/04/03 HTML / CSS
整理HTML5移动端开发的常用触摸事件
2016/04/15 HTML / CSS
Rockport乐步美国官网:风靡美国的白宫鞋
2016/11/24 全球购物
BOSE德国官网:尽探索之力,享音乐之极
2016/12/11 全球购物
实习期自我鉴定
2013/10/11 职场文书
夜不归宿检讨书
2014/02/25 职场文书
环境建设实施方案
2014/03/14 职场文书
会计专业应届生自荐信
2014/06/28 职场文书
竞聘演讲稿怎么写
2014/08/28 职场文书
校园运动会广播稿
2014/10/06 职场文书
针对吵架老公保证书
2015/05/08 职场文书