1.前言

假设一个公司A有一个网站B,且网站B有5个不同的页面分别为C1,C2,C3,C4,C5。

那么,我们在打开这5个不同页面后去查看页面的整体内容,会发现每个页面的顶部内容、底部内容都一模一样。所以我们可以尝试把这些每个页面都拥有的相同的内容单独抽离出来放在另外的html页面进行维护。
类似于python语言里面的函数概念,比如函数D1和函数D2的内部都会使用一部分有相同代码逻辑的代码块,我们把这一部分有相同代码逻辑的代码块写成函数D,然后函数D被函数D1和函数D2调用,这样就能实现代码的高效复用和维护。

django的html模板也有类似的功能,用include标签可以实现。

include标签主要实现的作用:{% include %} 标签允许在当前模板中包含其它的模板的内容。

2.一个html页面包含的主要内容

2.1.第一步,我们在【helloworld/hello/templates/】里新建一个【base.html】,具体内容如下。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>这是base页面的标题</title>
</head> <body> <section>
<h1>顶部导航</h1>
<p>顶部导航的文案可以是一些欢迎语或者提示语或者是网站的相关宣传语等等。比如现在的顶部导航文案可以是:“欢迎来到厦门-小洪的官网首页!”</p>
<hr>
</section> <section>
<h1>body正文</h1>
<p>每个页面的正文内容和div布局基本都是不一样的。</p>
</section> <section>
<br><br><br><br><hr>
<h1>底部导航</h1>
<p>底部一般会展示这些内容:友情链接,网站导航,版权,公司地址等等。</p>
</section> </body> </html>

2.2.第二步,我们在【helloworld/hello/views.py】里新建一个视图函数【base】,具体内容如下。

2.3.第三步,我们在【helloworld/helloworld/urls.py】里新建一个url匹配规则,具体内容如下。

2.4.第四步,启动django项目【helloworld】的服务,然后在任一浏览器输入该地址【http://127.0.0.1:8000/base/】,得到的页面展示内容如下。

我们可以看到,【base.html】页面有这三块内容:顶部导航、body正文、底部导航。

一般情况下,顶部导航和底部导航是不变的,变的只是body正文的内容,所以我们接下来可有把顶部导航和底部导航的对应的html代码块分别单独抽离出来并分别用新的html页面来存储和维护。

2.5.第五步,我们在【helloworld/hello/templates/】里新建一个【top.html】,具体内容如下。

2.6.第六步,我们在【helloworld/hello/templates/】里新建一个【end.html】,具体内容如下。

3.include标签的使用

3.1.第一步,我们在【helloworld/hello/templates/】里新建一个【new_page.html】,具体内容如下。

3.2.第二步,我们在【helloworld/hello/views.py】里新建一个视图函数【newPage】,具体内容如下。

3.3.第三步,我们在【helloworld/helloworld/urls.py】里新建一个url匹配规则,具体内容如下。

3.4.第四步,启动django项目【helloworld】的服务,然后在任一浏览器输入该地址【http://127.0.0.1:8000/new_page_666/】,得到的页面展示内容内容如下。

4.公共页面里也允许传模板参数

【top.html】和【end.html】这两个公共页面里都允许传模板参数。

我们可以拿【top.html】来进行相关调试。

4.1.第一步,我们在【helloworld/hello/views.py】里对已存在的视图函数【newPage】进行改造,具体改造后的新内容如下。

4.2.第二步,我们在【helloworld/hello/templates/top.html】里插入多个模板变量,具体内容如下。

4.3.第三步,启动django项目【helloworld】的服务,然后在任一浏览器输入该地址【http://127.0.0.1:8000/new_page_666/】,得到的页面最新展示内容如下。

django学习-7.html模板中include标签使用场景的更多相关文章

  1. Django 模板中 include 标签使用小结

    include 标签允许在模板中包含其它的模板的内容. 标签的参数是所要包含的模板名称,可以是一个变量,也可以是用单/双引号硬编码的字符串. 每当在多个模板中出现相同的代码时,就应该考虑是否要使用 { ...

  2. 测试开发之Django——No6.Django模板中的标签语言

    模板中的标签语言 1.if/else {% if  %} 标签检查(evaluate)一个变量,如果这个变量为真(即:变量存在,非空,不是布尔值假),系统会显示在{% if  %} 和 {% endi ...

  3. android中include标签使用详解

    android中include标签是为了便于控件的覆用的一个很好解决方案.   但是也有一些需要注意的地方,下面是本人在项目中碰到过的一个问题,做此记录,便于以后查看.   include标签用法. ...

  4. Django模板中include的标签的使用

    在很多网站中,基本上的都会有一个开头和一个结尾,在每一个网页中都会显示.相对于这种的来说,在Django中,最好的方法就是使用include的标签,在每一个模板中都加入这个开头和结尾的标签. 官方文档 ...

  5. Django学习笔记之模板

    模板 模板介绍 在之前的章节中,视图函数只是直接返回文本,而在实际生产环境中其实很少这样用,因为实际的页面大多是带有样式的HTML代码,这可以让浏览器渲染出非常漂亮的页面. 目前市面上有非常多的模板系 ...

  6. Django学习之 - 基础模板语言

    模板语言if/else/endif {% if today_is_weekend %} <p>Welcome to the weekend!</p> {% else %} &l ...

  7. Django学习系列之模板

    什么是django模板 模板是一个文本,用于分离文档的表现形式和内容,模板定义了占位符以及各种用于规范文档该如何显示的各部分基本逻辑(模板标签) 模板通常用于产生HTML 如何使用模板 创建一个Tem ...

  8. Django学习日记05_模板_模板语言

    Variables 在模板中,使用两个大括号包含变量的方式来使用变量: {{ name }} 该变量应该作为键值对中的键,在Context中能被查找到. Tags 模板中使用Tags来进行简单的逻辑: ...

  9. Django模版语言的复用 1. include标签--模版导入 2.inclusion_tag自定义标签--模版导入 3.母版

    include标签--模版导入 ''' 前提:项目中,往往会出现多个页面拥有一个或几个相同的页面版块,或是一个页面多个页面版块是相同的 如何运用:可以将多个样式标签的集合进行封装,对外提供版块的名字( ...

随机推荐

  1. java的几种对象(PO,VO,DAO,BO,POJO)

    一.PO persistant object 持久对象,可以看成是与数据库中的表相映射的java对象.最简单的PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合.PO中应该不包含任何对数 ...

  2. 从单页应用(SPA)到服务器渲染(SSR)

    从单页应用(SPA)到服务器渲染(SSR) 情景回顾 在学习Vue开发一个电商网站的管理后台时,使用到了一个组件 vue-quill-editor 主要是一个快捷的一个富文本编辑器 在使用这个组件的组 ...

  3. C语言简介与第一个C语言程序

    一.C语言产生的背景 C语言的出现与操作系统Unix是分不开的.Unix是1969年由美国贝尔实验室的K. Thompson和D. M. Ritchie两人用汇编语言编写,它存在许多不足,因此,需要一 ...

  4. A - 欧拉回路

    欧拉回路是指不令笔离开纸面,可画过图中每条边仅一次,且可以回到起点的一条回路.现给定一个图,问是否存在欧拉回路? Input测试输入包含若干测试用例.每个测试用例的第1行给出两个正整数,分别是节点数N ...

  5. HDU 6264 (深搜,数论)

    题目链接 题意 求\(\sum_{d|n}\phi (d) \times {n\over d}\),其中\(\phi(n) = n\prod_{p|n}({1-{1\over p}})\) 分析 将\ ...

  6. CF-gym/101810 J、T-Shirts Dilemma

    题目链接:点我 题意: 给你一个区间[a,b],让你从里面选一个连续子区间[x,y](子区间可以为[a,b]),把这个区间的所有数或起来x|x+1|x+2|...|y 你要使得区间[x,y]异或起来的 ...

  7. [POJ 2585] Window Pains 拓朴排序

    题意:你现在有9个2*2的窗口在4*4的屏幕上面,由于这9这小窗口叠放顺序不固定,所以在4*4屏幕上有些窗口只会露出来一部分. 如果电脑坏了的话,那么那个屏幕上的各小窗口叠放会出现错误.你的任务就是判 ...

  8. Strategic game POJ - 1463 树型dp

    //题意:就是你需要派最少的士兵来巡查每一条边.相当于求最少点覆盖,用最少的点将所有边都覆盖掉//题解://因为这是一棵树,所以对于每一条边的两个端点,肯定要至少有一个点需要放入士兵,那么对于x-&g ...

  9. JavaScript——五

    onload:在加载的时候 因为网页代码是从上到下执行的,所以我们有些对网页内容的操作要先加载出网页内容后再执行script的内容,这个时候如果没有onload我们只能写在这些内容的后面,但是有了lo ...

  10. Codeforces Round #656 (Div. 3) A. Three Pairwise Maximums (数学)

    题意:给你三个正整数\(x\),\(y\),\(z\),问能够找到三个正整数\(a\),\(b\),\(c\),使得\(x=max(a,b)\),\(y=max(a,c)\),\(z=max(b,c) ...