django模板语法学习之include示例详解

作者:听风。 时间:2023-10-03 18:52:54 

前言

在很多网站中,基本上的都会有一个开头和一个结尾,在每一个网页中都会显示。相对于这种的来说,在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就不会因为细微差别而编写多份代码了。

来源:http://www.cnblogs.com/huchong/p/8046969.html

标签:django,模板语法,include
0
投稿

猜你喜欢

  • python多重继承实例

    2022-02-06 12:12:34
  • windows上安装python3教程以及环境变量配置详解

    2023-11-11 08:09:35
  • Python学习之名字,作用域,名字空间(下)

    2021-04-28 05:45:20
  • 详解python第三方库的安装、PyInstaller库、random库

    2023-03-13 06:57:46
  • VMware中linux环境下oracle安装图文教程(二)ORACLE 10.2.05版本的升级补丁安装

    2023-07-22 11:37:11
  • python logging添加filter教程

    2022-08-21 00:36:43
  • 如何利用Python获取鼠标的实时位置

    2022-08-11 07:00:33
  • JS代码格式化和语法着色

    2013-07-14 19:47:45
  • javascript设计模式 – 单例模式原理与应用实例分析

    2024-04-29 14:09:29
  • Python中replace方法实例分析

    2023-09-30 05:42:53
  • vscode添加GIT和SVN的方法示例

    2023-08-24 17:44:38
  • python中前缀运算符 *和 **的用法示例详解

    2022-05-19 08:41:31
  • JS实现点击li标签弹出对应的索引功能【案例】

    2024-04-17 10:24:23
  • python实现录音功能(可随时停止录音)

    2023-07-29 05:15:06
  • python实现输入三角形边长自动作图求面积案例

    2023-08-12 01:47:49
  • Python字符串详细介绍

    2023-08-29 09:15:09
  • Go结合Gin导出Mysql数据到Excel表格

    2024-01-21 05:43:50
  • Python实现计算长方形面积(带参数函数demo)

    2021-07-02 10:07:20
  • 在Asp程序中取得表单所有内容的方法

    2010-04-24 16:07:00
  • 自定义 Github Action 库实战详解

    2022-04-07 13:19:00
  • asp之家 网络编程 m.aspxhome.com