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 相关文章推荐
关于pip的安装,更新,卸载模块以及使用方法(详解)
May 19 Python
python对配置文件.ini进行增删改查操作的方法示例
Jul 28 Python
python中hashlib模块用法示例
Oct 30 Python
Python实现感知器模型、两层神经网络
Dec 19 Python
NumPy.npy与pandas DataFrame的实例讲解
Jul 09 Python
对Python3 序列解包详解
Feb 16 Python
Python datetime包函数简单介绍
Aug 28 Python
python之yield和Generator深入解析
Sep 18 Python
关于tensorflow softmax函数用法解析
Jun 30 Python
Python引入多个模块及包的概念过程解析
Sep 21 Python
详解python算法常用技巧与内置库
Oct 17 Python
利用python制作拼图小游戏的全过程
Dec 04 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
thinkphp模板继承实例简述
2014/11/26 PHP
CI(CodeIgniter)模型用法实例分析
2016/01/20 PHP
PHP实现用户异地登录提醒功能的方法【基于thinkPHP框架】
2018/03/15 PHP
Laravel框架数据库迁移操作实例详解
2020/04/06 PHP
javascript mouseover、mouseout停止事件冒泡的解决方案
2009/04/07 Javascript
使用javascript创建快捷方式的简单实例
2013/08/09 Javascript
JS实现判断滚动条滚到页面底部并执行事件的方法
2014/12/18 Javascript
JS和css实现检测移动设备方向的变化并判断横竖屏幕
2015/05/25 Javascript
JavaScript中setTimeout和setInterval函数的传参及调用
2016/03/11 Javascript
基于jquery实现最简单的选项卡切换效果
2016/05/08 Javascript
移动端使用localStorage缓存Js和css文的方法(web开发)
2016/09/20 Javascript
jQuery图片轮播(二)利用构造函数和原型创建对象以实现继承
2016/12/06 Javascript
原生JS实现幻灯片
2017/02/22 Javascript
Angular4.0中引入laydate.js日期插件的方法教程
2017/12/25 Javascript
nest.js 使用express需要提供多个静态目录的操作方法
2019/10/24 Javascript
微信小程序canvas开发水果老虎机的思路详解
2020/02/07 Javascript
VSCode 配置uni-app的方法
2020/07/11 Javascript
JQuery通过键盘控制键盘按下与松开触发事件
2020/08/07 jQuery
使用Python实现下载网易云音乐的高清MV
2015/03/16 Python
一个基于flask的web应用诞生 组织结构调整(7)
2017/04/11 Python
单利模式及python实现方式详解
2018/03/20 Python
VScode编写第一个Python程序HelloWorld步骤
2018/04/06 Python
Python日期时间模块datetime详解与Python 日期时间的比较,计算实例代码
2018/09/14 Python
python实现在图片上画特定大小角度矩形框
2018/10/24 Python
python匹配两个短语之间的字符实例
2018/12/25 Python
基于Python实现迪杰斯特拉和弗洛伊德算法
2020/05/27 Python
python GUI库图形界面开发之PyQt5控件QTableWidget详细使用方法与属性
2020/02/25 Python
使用ITK-SNAP进行抠图操作并保存mask的实例
2020/07/01 Python
纯CSS3代码实现switch滑动开关按钮效果
2016/08/30 HTML / CSS
天猫精选:上天猫,就够了
2016/09/21 全球购物
罗马尼亚在线杂货店:Pilulka.ro
2019/09/28 全球购物
科颜氏英国官网:Kiehl’s英国
2019/11/20 全球购物
新加坡第一大健康与美容零售商:屈臣氏新加坡(Watsons Singapore)
2020/12/11 全球购物
银行求职自荐信范文
2015/03/04 职场文书
小程序与后端Java接口交互实现HelloWorld入门
2021/07/09 Java/Android
python自动化测试之Selenium详解
2022/03/13 Python