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 strip lstrip rstrip使用方法
Sep 06 Python
用Python代码来绘制彭罗斯点阵的教程
Apr 03 Python
Python中字符串的处理技巧分享
Sep 17 Python
Python爬虫实现网页信息抓取功能示例【URL与正则模块】
May 18 Python
python实现逆序输出一个数字的示例讲解
Jun 25 Python
Python实现简单石头剪刀布游戏
Jan 20 Python
线程安全及Python中的GIL原理分析
Oct 29 Python
Python3 中作为一等对象的函数解析
Dec 11 Python
python使用numpy实现直方图反向投影示例
Jan 17 Python
python读取图片的几种方式及图像宽和高的存储顺序
Feb 11 Python
Python Selenium安装及环境配置的实现
Mar 17 Python
用Python远程登陆服务器的步骤
Apr 16 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脚本的10个技巧(8)
2006/10/09 PHP
PHP 文件扩展名 获取函数
2009/06/03 PHP
php使用websocket示例详解
2014/03/12 PHP
Yii学习总结之数据访问对象 (DAO)
2015/02/22 PHP
php实现专业获取网站SEO信息类实例
2015/04/02 PHP
php实现根据词频生成tag云的方法
2015/04/17 PHP
基于 Swoole 的微信扫码登录功能实现代码
2018/01/15 PHP
一个非常全面的javascript URL解析函数和分段URL解析方法
2014/04/12 Javascript
javascript委托(Delegate)blur和focus用法实例分析
2015/05/26 Javascript
js变形金刚文字特效代码分享
2015/08/20 Javascript
AngularJS  双向数据绑定详解简单实例
2016/10/20 Javascript
jQuery设置Easyui校验规则(推荐)
2016/11/21 Javascript
JS实现微信弹出搜索框 多条件查询功能
2016/12/13 Javascript
js 获取今天以及过去日期
2017/04/11 Javascript
ES6深入理解之“let”能替代”var“吗?
2017/06/28 Javascript
vue实现提示保存后退出的方法
2018/03/15 Javascript
解决vue移动端适配问题
2018/12/12 Javascript
js实现随机div颜色位置 类似满天星效果
2019/10/24 Javascript
详解一些适用于Node.js的命名约定
2019/12/08 Javascript
Bootstrap实现前端登录页面带验证码功能完整示例
2020/03/26 Javascript
tensorflow 获取模型所有参数总和数量的方法
2018/06/14 Python
对pandas的层次索引与取值的新方法详解
2018/11/06 Python
Python 从相对路径下import的方法
2018/12/04 Python
python输出带颜色字体实例方法
2019/09/01 Python
Python调用Windows API函数编写录音机和音乐播放器功能
2020/01/05 Python
python实现文法左递归的消除方法
2020/05/22 Python
下面这个程序执行后会有什么错误或者效果
2014/11/03 面试题
机电工程专业应届生求职信
2013/10/03 职场文书
大学教师年终总结的自我评价
2013/10/29 职场文书
药学专业大专生的自我评价
2013/12/12 职场文书
即兴演讲稿
2014/01/04 职场文书
优秀护士演讲稿
2014/04/30 职场文书
五好关工委申报材料
2014/05/31 职场文书
赵氏孤儿观后感
2015/06/09 职场文书
关于食品安全的演讲稿范文(三篇)
2019/10/21 职场文书
SQL Server 忘记密码以及重新添加新账号
2022/04/26 SQL Server