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 操作 HBase 教程

    Java 操作 HBase 教程 一.简介 二.hbase-client 引入 三.连接操作 四.表操作 五.运行测试 相关博文原文地址: 博客园:美码师:HBase(2) Java 操作 HBase ...

  2. 将Spring Boot项目运行在Docker上

    将Spring Boot项目运行在Docker上 一.使用Dockerfile构建Docker镜像 1.1Dockerfile常用指令 1.1.1ADD复制文件 1.1.2ARG设置构建参数 1.1. ...

  3. 提供读取excel 的方法

    /** * 对外提供读取excel 的方法 * */ public static List<List<Object>> readExcel(String path) throw ...

  4. 将文件转成byte[]文件属组

    /** * * @Description : 读取文件数组 * @Method_Name : fileBuff * @param filePath * @return * @throws IOExce ...

  5. 《C++ Primer Plus》啃书计 第1~4章

    <C++ Primer Plus>啃书计 第1~4章 第一章 预备知识 1.1-1.3略过 1.4 程序创建的技巧 1. cfront,它将C++源代码翻译成C源代码,然后再使用标准C编译 ...

  6. PIE模型

    首先,我们需要明确程序的Bug有如下的定义: 1. Fault/Defect 静态的,存在于软件中的缺陷.例如:一段有缺失或者错误的代码. 2. Error 运行时一种不正确的中间状态. 3. Fai ...

  7. unix环境高级编程第三章笔记

    文件描述符 1.文件描述符的概念 对于内核而言,所有打开的文件都会用一个文件描述符来引用,打开或和创建一个新文件的时候,内核会给进程返回一个文件描述符,而当使用read write时,可以使用这个文件 ...

  8. P3128 [USACO15DEC]最大流Max Flow (树上差分)

    题目描述 Farmer John has installed a new system of N-1N−1 pipes to transport milk between the NN stalls ...

  9. codeforces578C. Weakness and Poorness

    time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standa ...

  10. Codeforces Round #643 (Div. 2) C. Count Triangles (数学公式)

    题意:给你四个正整数\(A,B,C,D\),且\(A\le B\le C \le D\),有\(A\le x\le B\le y\le C \le z\le D\),求最多有多少组\((x,y,z)\ ...