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实现基于HTTP文件传输实例
Nov 08 Python
Python实现list反转实例汇总
Nov 11 Python
在Python中使用正则表达式的方法
Aug 13 Python
Python数据结构与算法之二叉树结构定义与遍历方法详解
Dec 12 Python
Pyqt实现无边框窗口拖动以及窗口大小改变
Apr 19 Python
pygame游戏之旅 调用按钮实现游戏开始功能
Nov 21 Python
Python魔法方法功能与用法简介
Apr 04 Python
python中yield的用法详解——最简单,最清晰的解释
Apr 04 Python
python 穷举指定长度的密码例子
Apr 02 Python
浅谈pytorch中的BN层的注意事项
Jun 23 Python
Pycharm2020最新激活码|永久激活(附最新激活码和插件的详细教程)
Sep 29 Python
利用Python实现字幕挂载(把字幕文件与视频合并)思路详解
Oct 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
PHP与MySQL开发中页面乱码的产生与解决
2008/03/27 PHP
通过PHP current函数获取未知字符键名数组第一个元素的值
2013/06/24 PHP
浏览器兼容console对象的简要解决方案分享
2013/10/24 Javascript
JavaScript DOM节点添加示例
2014/07/16 Javascript
jquery checkbox 勾选的bug问题解决方案与分析
2014/11/13 Javascript
JavaScript实现输入框与清空按钮联动效果
2016/09/09 Javascript
JS+CSS3制作炫酷的弹窗效果
2016/11/08 Javascript
基于Node.js + WebSocket打造即时聊天程序嗨聊
2016/11/29 Javascript
Bootstrap笔记—折叠实例代码
2017/03/13 Javascript
老生常谈combobox和combotree模糊查询
2017/04/17 Javascript
JS获取input[file]的值并显示在页面的实现方法
2018/03/09 Javascript
对vue里函数的调用顺序介绍
2018/03/17 Javascript
js如何获取访问IP、地区、当前操作浏览器
2019/07/23 Javascript
vue自定义switch开关组件,实现样式可自行更改
2019/11/01 Javascript
浅谈实现在线预览PDF的几种解决办法
2020/08/10 Javascript
javascript this指向相关问题及改变方法
2020/11/19 Javascript
vue打开其他项目页面并传入数据详解
2020/11/25 Vue.js
pandas DataFrame 根据多列的值做判断,生成新的列值实例
2018/05/18 Python
python 读取文本文件的行数据,文件.splitlines()的方法
2018/07/12 Python
浅谈Django的缓存机制
2018/08/23 Python
pygame游戏之旅 添加icon和bgm音效的方法
2018/11/21 Python
python实现多进程通信实例分析
2019/09/01 Python
python 三元运算符使用解析
2019/09/16 Python
Python脚本操作Excel实现批量替换功能
2019/11/20 Python
Python 爬虫性能相关总结
2020/08/03 Python
CSS3 实用技巧:实现黑白图像效果示例代码
2013/07/11 HTML / CSS
从一次项目重构说起CSS3自定义变量在项目的使用方法
2021/03/01 HTML / CSS
UGG雪地靴荷兰官网:UGG荷兰
2016/09/09 全球购物
巴西网上药房:onofre
2016/11/21 全球购物
国际性能运动服装品牌:Dare 2b
2018/07/27 全球购物
英国Radley包德国官网:Radley London德国
2019/11/18 全球购物
会计电算化大学生职业规划书
2014/02/05 职场文书
小学生手册家长评语
2014/04/16 职场文书
入党积极分子评语
2014/05/04 职场文书
医院2014国庆节活动策划方案
2014/09/21 职场文书
MySQL高速缓存启动方法及参数详解(query_cache_size)
2021/07/01 MySQL