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 相关文章推荐
Pyramid Mako模板引入helper对象的步骤方法
Nov 27 Python
Python实现二分查找算法实例
May 26 Python
Python语言的面相对象编程方式初步学习
Mar 12 Python
Python实现的凯撒密码算法示例
Apr 12 Python
基于python OpenCV实现动态人脸检测
May 25 Python
目前最全的python的就业方向
Jun 05 Python
使用python3构建文件传输的方法
Feb 13 Python
Python实现多态、协议和鸭子类型的代码详解
May 05 Python
Pycharm+Python+PyQt5使用详解
Sep 25 Python
对tensorflow 中tile函数的使用详解
Feb 07 Python
MAC平台基于Python Appium环境搭建过程图解
Aug 13 Python
基于Python制作一副扑克牌过程详解
Oct 19 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
新安装的MySQL数据库需要注意的安全知识
2008/07/30 PHP
PHP 实用代码收集
2010/01/22 PHP
PHP小教程之实现链表
2014/06/09 PHP
php set_include_path函数设置 include_path 配置选项
2016/10/30 PHP
tp5.1 框架查询表达式用法详解
2020/05/25 PHP
js 居中漂浮广告
2010/03/21 Javascript
JavaScript移除数组内重复元素的方法
2015/03/18 Javascript
Javascript中setTimeOut和setInterval的定时器用法
2015/06/12 Javascript
js实现精确到秒的日期选择器完整实例
2016/04/30 Javascript
JS中的==运算: [''] == false —&gt;true
2016/07/24 Javascript
jQuery实现的简单前端搜索功能示例
2017/10/28 jQuery
基于vue-simplemde实现图片拖拽、粘贴功能
2018/04/12 Javascript
浅谈Vue路由快照实现思路及其问题
2018/06/07 Javascript
解决Vue+Electron下Vuex的Dispatch没有效果问题
2019/05/20 Javascript
javascript关于“时间”的一次探索
2019/07/24 Javascript
Layui Form 自定义验证的实例代码
2019/09/14 Javascript
Vue实现图书管理小案例
2020/12/03 Vue.js
Python3基础之list列表实例解析
2014/08/13 Python
pandas 按照特定顺序输出的实现代码
2018/07/10 Python
Python中实例化class的执行顺序示例详解
2018/10/14 Python
对pandas将dataframe中某列按照条件赋值的实例讲解
2018/11/29 Python
Tensorflow模型实现预测或识别单张图片
2019/07/19 Python
python修改linux中文件(文件夹)的权限属性操作
2020/03/05 Python
Python使用itcaht库实现微信自动收发消息功能
2020/07/13 Python
Python通过getattr函数获取对象的属性值
2020/10/16 Python
python批量合成bilibili的m4s缓存文件为MP4格式 ver2.5
2020/12/01 Python
canvas绘制表情包的示例代码
2018/07/09 HTML / CSS
使用canvas来完成线性渐变和径向渐变的功能的方法示例
2019/07/25 HTML / CSS
火山咖啡:Volcanica Coffee
2019/10/29 全球购物
财务管理专业毕业生求职信
2014/06/02 职场文书
教育局党的群众路线教育实践活动整改方案
2014/09/20 职场文书
2014年四风个人对照检查及整改措施
2014/10/28 职场文书
聘任书的格式及模板
2019/10/28 职场文书
如何在CocosCreator里画个炫酷的雷达图
2021/04/16 Javascript
Spring中的@Transactional的工作原理
2022/06/05 Java/Android
vue css 相对路径导入问题级踩坑记录
2022/06/05 Vue.js