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读写Excel文件的实例
Nov 01 Python
Python中文编码那些事
Jun 25 Python
Django中的CACHE_BACKEND参数和站点级Cache设置
Jul 23 Python
详解Django之admin组件的使用和源码剖析
May 04 Python
Python后台管理员管理前台会员信息的讲解
Jan 28 Python
Python使用Shelve保存对象方法总结
Jan 28 Python
在windows下使用python进行串口通讯的方法
Jul 02 Python
Python学习笔记之While循环用法分析
Aug 14 Python
python3 BeautifulSoup模块使用字典的方法抓取a标签内的数据示例
Nov 28 Python
python 在sql语句中使用%s,%d,%f说明
Jun 06 Python
Python descriptor(描述符)的实现
Nov 15 Python
python内置进制转换函数的操作
Jun 02 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
乐信RP2100的电路分析和打磨
2021/03/02 无线电
php实现将字符串按照指定距离进行分割的方法
2015/03/14 PHP
PHP 自动加载的简单实现(推荐)
2016/08/12 PHP
php实现HTML实体编号与非ASCII字符串相互转换类实例
2016/11/02 PHP
Laravel中10个有用的用法小结
2019/05/06 PHP
php写入mysql中文乱码的实例解决方法
2019/09/17 PHP
浅析PHP反序列化中过滤函数使用不当导致的对象注入问题
2020/02/15 PHP
用js获取电脑信息(是使用与IE浏览器)
2013/01/15 Javascript
jQuery 设置 CSS 属性示例介绍
2014/01/16 Javascript
JS下载文件|无刷新下载文件示例代码
2014/04/17 Javascript
全面兼容的javascript时间格式化函数(比较实用)
2014/05/14 Javascript
Javascript让DEDECMS告别手写Tag
2014/09/01 Javascript
jQuery实现html表格动态添加新行的方法
2015/05/28 Javascript
深入探究AngularJS框架中Scope对象的超级教程
2016/01/04 Javascript
纯javascript版日历控件
2016/11/24 Javascript
详解Vue路由开启keep-alive时的注意点
2017/06/20 Javascript
Node.js+jade抓取博客所有文章生成静态html文件的实例
2017/09/19 Javascript
Windows下Node爬虫神器Puppeteer安装记
2019/01/09 Javascript
详解element-ui 表单校验 Rules 配置 常用黑科技
2020/07/11 Javascript
Python中实现两个字典(dict)合并的方法
2014/09/23 Python
Python实现的异步代理爬虫及代理池
2017/03/17 Python
Python实现按特定格式对文件进行读写的方法示例
2017/11/30 Python
Win7 64位下python3.6.5安装配置图文教程
2020/10/27 Python
python numpy数组复制使用实例解析
2020/01/10 Python
tensorboard 可以显示graph,却不能显示scalar的解决方式
2020/02/15 Python
python实现全排列代码(回溯、深度优先搜索)
2020/02/26 Python
python程序文件扩展名知识点详解
2020/02/27 Python
python 使用递归的方式实现语义图片分割功能
2020/07/16 Python
python实现双人五子棋(终端版)
2020/12/30 Python
将不规则的Python多维数组拉平到一维的方法实现
2021/01/11 Python
美国知名奢侈美容品牌零售商:Cos Bar
2017/04/21 全球购物
应用服务器有那些
2012/01/19 面试题
俞敏洪一分钟演讲稿
2014/08/26 职场文书
起诉状范本
2015/05/20 职场文书
分享一些Java的常用工具
2021/06/11 Java/Android
js作用域及作用域链工作引擎
2022/07/07 Javascript