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中mechanize库的简单使用示例
Jan 10 Python
python实现端口转发器的方法
Mar 13 Python
使用Python的Flask框架构建大型Web应用程序的结构示例
Jun 04 Python
Python常见MongoDB数据库操作实例总结
Jul 24 Python
django使用LDAP验证的方法示例
Dec 10 Python
Python开发网站目录扫描器的实现
Feb 21 Python
Python3 sys.argv[ ]用法详解
Oct 24 Python
使用Python实现正态分布、正态分布采样
Nov 20 Python
Python HTMLTestRunner可视化报告实现过程解析
Apr 10 Python
浅谈pytorch 模型 .pt, .pth, .pkl的区别及模型保存方式
May 25 Python
Python实现SMTP邮件发送
Jun 16 Python
linux mint中搜狗输入法导致pycharm卡死的问题
Oct 28 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
短波问题解答
2021/02/28 无线电
jq的get传参数在utf-8中乱码问题的解决php版
2008/07/23 PHP
PHP往XML中添加节点的方法
2015/03/12 PHP
php给图片添加文字水印方法汇总
2015/08/27 PHP
PHP实现对数组分页处理实例详解
2017/02/07 PHP
php 替换文章中的图片路径,下载图片到本地服务器的方法
2018/02/06 PHP
js innerHTML 改变div内容的方法
2013/08/03 Javascript
jquery mobile事件多次绑定示例代码
2013/09/13 Javascript
浅谈js中的闭包
2015/03/16 Javascript
jQuery Validate表单验证入门学习
2015/12/18 Javascript
Bootstrap3下拉菜单的实现
2017/02/22 Javascript
完美实现js选项卡切换效果(一)
2017/03/08 Javascript
浅谈webpack 自动刷新与解析
2018/04/09 Javascript
使用mpvue搭建一个初始小程序及项目配置方法
2018/12/03 Javascript
一些你可能不熟悉的JS知识点总结
2019/03/15 Javascript
JS实现水平遍历和嵌套递归操作示例
2019/08/15 Javascript
vue通过v-html指令渲染的富文本无法修改样式的解决方案
2020/05/20 Javascript
基于Python实现的ID3决策树功能示例
2018/01/02 Python
详解将Pandas中的DataFrame类型转换成Numpy中array类型的三种方法
2019/07/06 Python
python中for循环变量作用域及用法详解
2019/11/05 Python
Python2 与Python3的版本区别实例分析
2020/03/30 Python
详解python爬取弹幕与数据分析
2020/11/14 Python
一款超酷的js+css3实现的3D标签云特效兼容ie7/8/9
2013/11/18 HTML / CSS
基于IE10/HTML5 开发
2013/04/22 HTML / CSS
HTML5 Notification(桌面提醒)功能使用实例
2014/03/17 HTML / CSS
巴西葡萄酒销售网站:Wine.com.br
2017/11/07 全球购物
大学四年的个人自我评价
2014/01/14 职场文书
玲玲的画教学反思
2014/02/04 职场文书
上班玩手机检讨书
2014/02/17 职场文书
护理专科毕业生自荐书范文
2014/02/19 职场文书
劳动竞赛口号
2014/06/16 职场文书
毕业生自荐信范文
2015/03/05 职场文书
邹越演讲观后感
2015/06/15 职场文书
关于环保的宣传稿
2015/07/23 职场文书
如何书写授权委托书?
2019/06/25 职场文书
分享CSS盒子模型隐藏的几种方式
2022/02/28 HTML / CSS