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使用cookielib模块操作cookie的实例教程
Jul 12 Python
python3实现基于用户的协同过滤
May 31 Python
python 函数的缺省参数使用注意事项分析
Sep 17 Python
Python3安装pip工具的详细步骤
Oct 14 Python
Python 使用元类type创建类对象常见应用详解
Oct 17 Python
Python笔记之观察者模式
Nov 20 Python
详解Python设计模式之策略模式
Jun 15 Python
Python结合Window计划任务监测邮件的示例代码
Aug 05 Python
python openCV自制绘画板
Oct 27 Python
Python加载数据的5种不同方式(收藏)
Nov 13 Python
PO模式在selenium自动化测试框架的优势
Mar 20 Python
ubuntu安装jupyter并设置远程访问的实现
Mar 31 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
如何将一个表单同时提交到两个地方处理
2006/10/09 PHP
分享一个php 的异常处理程序
2014/06/22 PHP
PHP_SELF,SCRIPT_NAME,REQUEST_URI区别
2014/12/24 PHP
YII CLinkPager分页类扩展增加显示共多少页
2016/01/29 PHP
PHP+Ajax实现验证码的实时验证
2016/07/20 PHP
PHP+MySQL实现输入页码跳转到指定页面功能示例
2018/06/01 PHP
js可突破windows弹退效果代码
2008/08/09 Javascript
查找Oracle高消耗语句的方法
2014/03/22 Javascript
js实现浏览器窗口大小被改变时触发事件的方法
2015/02/02 Javascript
详解JavaScript的策略模式编程
2015/06/24 Javascript
基于JavaScript实现弹出框效果
2016/02/19 Javascript
JavaScript中数组去除重复的三种方法
2016/04/22 Javascript
angular+bootstrap的双向数据绑定实例
2017/03/03 Javascript
Restify中接入Socket.io报Error:Can’t set headers的错误解决
2017/03/28 Javascript
Node.js中看JavaScript的引用
2017/04/22 Javascript
微信小程序之数据缓存的实例详解
2017/09/29 Javascript
通过vue-cli来学习修改Webpack多环境配置和发布问题
2017/12/22 Javascript
Node.js文件编码格式的转换的方法
2018/04/27 Javascript
解决vue初始化项目时,一直卡在Project description上的问题
2019/10/31 Javascript
JS代码简洁方式之函数方法详解
2020/07/28 Javascript
在Mac OS上使用mod_wsgi连接Python与Apache服务器
2015/12/24 Python
详解设计模式中的工厂方法模式在Python程序中的运用
2016/03/02 Python
Python3简单爬虫抓取网页图片代码实例
2019/08/26 Python
浅谈pytorch卷积核大小的设置对全连接神经元的影响
2020/01/10 Python
python百行代码自制电脑端网速悬浮窗的实现
2020/05/12 Python
Python 列表中的修改、添加和删除元素的实现
2020/06/11 Python
基于python tkinter的点名小程序功能的实例代码
2020/08/22 Python
canvas学习和滤镜实现代码
2018/08/22 HTML / CSS
联想墨西哥官方网站:Lenovo墨西哥
2016/08/17 全球购物
美国全球旅游运营商:Pacific Holidays
2018/06/18 全球购物
高一物理教学反思
2014/01/24 职场文书
四下基层实施方案
2014/03/28 职场文书
学校校庆演讲稿
2014/05/22 职场文书
奇妙的 CSS shapes(CSS图形)
2021/04/05 HTML / CSS
使用numpy nonzero 找出非0元素
2021/05/14 Python
Windows环境下实现批量执行Sql文件
2021/10/05 SQL Server