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实现的二维码生成小软件
Jul 11 Python
Python新手在作用域方面经常容易碰到的问题
Apr 03 Python
python中global用法实例分析
Apr 30 Python
python urllib爬取百度云连接的实例代码
Jun 19 Python
python遍历序列enumerate函数浅析
Oct 17 Python
python 按照固定长度分割字符串的方法小结
Apr 30 Python
不到20行代码用Python做一个智能聊天机器人
Apr 19 Python
关于django 1.10 CSRF验证失败的解决方法
Aug 31 Python
python中使用paramiko模块并实现远程连接服务器执行上传下载功能
Feb 29 Python
python中matplotlib实现随鼠标滑动自动标注代码
Apr 23 Python
python+selenium爬取微博热搜存入Mysql的实现方法
Jan 27 Python
图文详解matlab原始处理图像几何变换
Jul 09 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 5.2.14+fpm+memcached(具体操作详解)
2013/06/18 PHP
PHP实现的通过参数生成MYSQL语句类完整实例
2016/04/11 PHP
php简单处理XML数据的方法示例
2017/05/19 PHP
PHP迭代与递归实现无限级分类
2017/08/28 PHP
总结PHP内存释放以及垃圾回收
2018/03/29 PHP
PHP模版引擎原理、定义与用法实例
2019/03/29 PHP
JavaScript中this关键字使用方法详解
2007/03/08 Javascript
学习YUI.Ext第七日-View&amp;JSONView Part Two-一个画室网站的案例
2007/03/10 Javascript
Extjs 4.x 得到form CheckBox 复选框的值
2014/05/04 Javascript
JavaScript弹出新窗口后向父窗口输出内容的方法
2015/04/06 Javascript
简介JavaScript中的getUTCFullYear()方法的使用
2015/06/10 Javascript
Jquery操作Ajax方法小结
2015/11/29 Javascript
Position属性之relative用法
2015/12/14 Javascript
基于JavaScript代码实现随机漂浮图片广告
2016/01/05 Javascript
JS onkeypress兼容性写法详解
2016/04/27 Javascript
AngularJS 文件上传控件 ng-file-upload详解
2017/01/13 Javascript
JavaScript中offsetWidth的bug及解决方法
2017/05/17 Javascript
Vue.js 2.0和Cordova开发webApp环境搭建方法
2018/02/26 Javascript
解决Vue在封装了Axios后手动刷新页面拦截器无效的问题
2018/11/08 Javascript
微信小程序合法域名配置方法
2019/05/06 Javascript
使用Vue实现移动端左滑删除效果附源码
2019/05/16 Javascript
小程序实现投票进度条
2019/11/20 Javascript
Python入门之后再看点什么好?
2018/03/05 Python
Anaconda 离线安装 python 包的操作方法
2018/06/11 Python
python GUI图形化编程wxpython的使用
2019/07/19 Python
详解Python文件修改的两种方式
2019/08/22 Python
opencv+python实现鼠标点击图像,输出该点的RGB和HSV值
2020/06/02 Python
简单了解Django项目应用创建过程
2020/07/06 Python
python如何遍历指定路径下所有文件(按按照时间区间检索)
2020/09/14 Python
Python基于callable函数检测对象是否可被调用
2020/10/16 Python
HTML5单页面手势滑屏切换原理
2016/03/21 HTML / CSS
面向游戏玩家和书呆子的极客订阅盒:Loot Crate
2020/11/25 全球购物
static函数与普通函数有什么区别
2015/12/25 面试题
服务员岗位责任制
2014/02/11 职场文书
学校庆元旦歌咏比赛主持词
2014/03/18 职场文书
2014基建处领导班子“四风”对照检查材料思想汇报
2014/10/04 职场文书