Django_模板继承

news2024/11/16 9:36:12

模板继承先创建一个父模版,它包含大部页面共有元素,并且需要定义能够被子模板覆盖的blocks标签。

extends 模板继承

通过下面的例子,理解模板继承的概念。

创建base.html文件,写入下面代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <title>{% block title %}基础模板{% endblock %}</title>
</head>

<body>
    <div id="app">
        <!-- 如果是所有页面共用部分,可直接在block外部写死 -->
        <div> 所有页面公用部分 </div>
        <!-- 如果是部分页面共用部分,可定义在block中,不需要使用的页面可重写该block,其中block_name1为block的名称 -->
        {% block block_name1 %}
            <div> 部分页面公用部分1 </div>
        {% endblock %}
        {% block block_name2 %}
            <div> 部分页面公用部分2 </div>
        {% endblock %}
        <!-- 定义的block可以为空白块 -->
        {% block block_name3 %}
        {% endblock %}
    </div>
</body>
</html>

在子模板中直接继承bse.html模板。

创建demo.html文件,写入下面代码:

<!-- 继承base.html模板 -->
{% extends "base.html" %}

写个视图函数调用上面的demo.html模板,然后访问该页面

可以看到子模板显示了父模板所有内容。

重写block 

修改demo.html文件内容如下:

<!-- 继承base.html模板 -->
{% extends "base.html" %}

<!-- 重写tile的block -->
{% block title%} Demo {% endblock %}

<!-- 重写block_name1的block---重写内容 -->
{% block block_name1 %} 重写部分页面公用部分1 {% endblock %}

<!-- 重写block_name2的block---隐藏内容 -->
{% block block_name2 %}{% endblock %}

<!-- 重写block_name3的block---重写内容 -->
{% block block_name3 %}
    <div> hello python!</div>
    <div> 你好,python! </div>
{% endblock %}

访问demo.html模板,显示的内容如下:

子模板也可被继承重写

修改demo.html文件内容如下:

<!-- 继承base.html模板 -->
{% extends "base.html" %}

<!-- 重写tile的block -->
{% block title%} Demo {% endblock %}

<!-- 重写block_name1的block---重写内容 -->
{% block block_name1 %} 重写部分页面公用部分1 {% endblock %}

<!-- 重写block_name2的block---隐藏内容 -->
{% block block_name2 %}{% endblock %}

<!-- 重写block_name3的block---重写内容 -->
{% block block_name3 %}
    <div> hello python!</div>
    <div> 你好,python! </div>
    {% block block_name4 %}
    {% endblock %}
{% endblock %}

新增demo1.html文件内容如下:

<!-- 继承demo.html模板 -->
{% extends "demo.html" %}

{% block title%} Demo1 {% endblock %}

{% block block_name4 %}
<div>继承子模板</div>
{% endblock %}

访问demo1.html,显示的内容如下:


源码等资料获取方法

 各位想获取源码的朋友请点赞 + 评论 + 收藏,三连!

三连之后我会在评论区挨个私信发给你们~

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/739241.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Stable Diffusion - 墨幽人造人 模型与 Tag 配置

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/131565068 墨幽人造人模型的版本介绍&#xff1a; v1010修剪&#xff1a;更小体积的4G修剪版&#xff0c;但是整体色彩及细节表现力、好手好脸概…

结构体和数据结构--动态数据结构体-单向链表

目录 一、问题的提出 二、链表的定义 三、单向链表的建立 四、单向链表的删除操作 五、单向链表的插入操作 一、问题的提出 数组实质是一种顺序存储&#xff0c;随机访问的线性表&#xff0c;它的优点是使用直观&#xff0c;便于快速、随机地存取线性表中地任意元素。但缺…

线性表综合应用题1

线性表综合应用题1 从顺序表中删除具有最小值的元素&#xff08;假设唯一&#xff09;并由函数返回被删除元素的值。空出的位置由最后一个元素填补&#xff0c;若顺序表为空&#xff0c;则显示出错信息并退出运行。 算法思想&#xff1a;搜索整个顺序表&#xff0c;查找最小值元…

多元回归预测 | Matlab基于鲸鱼算法(WOA)优化高斯过程回归(WOA-GPR)的数据回归预测,matlab代码,多变量输入模型

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 多元回归预测 | Matlab基于鲸鱼算法(WOA)优化高斯过程回归(WOA-GPR)的数据回归预测,matlab代码,多变量输入模型 评价指标包括:MAE、RMSE和R2等,代码质量极高,方便学习和替换数据。要求2018版本及以上。 部分源…

ct.js笔记-整合SweetAlert2,弹出输入框(添加Cat模组)

如下&#xff1a; 效果如下&#xff1a; 点击Name后&#xff1a; 实现如下&#xff1a; 在ct.libs中添加个新文件夹sweetalert2文件夹。 内部要包含这几个关键文件&#xff1a; ①index.js&#xff1a;调用模组的入库文件&#xff1b; ②includes文件夹&#xff1a;把需要引…

keepalived 实现 IP 地址漂移

&#x1f388; 作者&#xff1a;Linux猿 &#x1f388; 简介&#xff1a;CSDN博客专家&#x1f3c6;&#xff0c;华为云享专家&#x1f3c6;&#xff0c;Linux、C/C、云计算、物联网、面试、刷题、算法尽管咨询我&#xff0c;关注我&#xff0c;有问题私聊&#xff01; &…

基于redis实现延时队列(二)

背景 上篇文章中使用了redis的zset定时器实现延时任务&#xff0c;虽然定时器设置为30秒执行一次&#xff0c;但是还是有时间上的差异化&#xff1b;现更换一种方式实现&#xff0c;可以避免时间上的差异。 redis的key过期回调事件&#xff0c;也能达到延迟队列效果 配置修改…

抖音短视频seo矩阵源码开源SaaS部署(四)

目录 一、 抖音短视频SEO矩阵包括以下内容&#xff1a; ​编辑 二、 源码开源部署流程 三、 SaaS的理解 四、 抖音短视频seo&#xff0c;SaaS矩阵部署用到的技术 抖音短视频SEO主要是通过以下几个方面实现的&#xff1a; SaaS矩阵部署主要用到的技术包括以下几个方面&…

深蓝学院C++基础与深度解析笔记 第 11 章 类

深蓝学院C基础与深度解析笔记 第 11 章 类 1. 结构体与对象聚合 **● 结构体&#xff1a;**对基本数据结构进行扩展&#xff0c;将多个对象放置在一起视为一个整体 – 结构体的声明与定义&#xff08;注意定义后面要跟分号来表示结束&#xff09; – 仅有声明的结构体是不完全…

【Linux后端服务器开发】共享内存

目录 一、共享内存概述 二、共享内存&#xff08;IPC资源&#xff09;的查看——ipcm 三、共享内存的创建——shmget 四、共享内存的控制&#xff08;删除&#xff09;——shmctl 五、共享内存的关联——shmat 六、共享内存去关联——shmdt 七、进程间通信 一、共享内存…

力扣 -- 309. 最佳买卖股票时机含冷冻期

题目链接&#xff1a;309. 最佳买卖股票时机含冷冻期 - 力扣&#xff08;LeetCode&#xff09; 下面是用动态规划的思想解决这道题的过程&#xff0c;相信各位小伙伴都能看懂并且掌握这道经典的动规题目滴。 参考代码&#xff1a; class Solution { public:int maxProfit(vec…

基于matlab使用深度神经网络对肿瘤图像进行分类(附源码)

一、前言 此示例演示如何使用 Inception-v3 深度神经网络对可能不适合内存的多分辨率全玻片图像 &#xff08;WSI&#xff09; 进行分类。 用于肿瘤分类的深度学习方法依赖于数字病理学&#xff0c;其中整个组织切片被成像和数字化。生成的 WSI 具有高分辨率&#xff0c;大约…

Openlayers实战:平移、弹性平移、飞行动画

Openlayers地图上经常会遇到这样的一种 场景,获取到某数据后,会重新定位中心点到某个位置,这里可以用setCenter([lon,lat]), 更可以用动画的形式展现。 在本实战中,展示出平移、弹性平移、飞行的动画。 效果图 源代码 /* * @Author: 大剑师兰特(xiaozhuanlan),还是大剑…

【图像处理OpenCV(C++版)】——5.5 图像平滑之双边滤波

前言&#xff1a; &#x1f60a;&#x1f60a;&#x1f60a;欢迎来到本博客&#x1f60a;&#x1f60a;&#x1f60a; &#x1f31f;&#x1f31f;&#x1f31f; 本专栏主要结合OpenCV和C来实现一些基本的图像处理算法并详细解释各参数含义&#xff0c;适用于平时学习、工作快…

第三十六天 Java基础学习(三十)

一、Spring MVC 组件是将处理某类问题的代码进行封装的整体模块。一个大的问题可以拆分为不同的小问题&#xff0c;解决每个小问题的代码封装可以称之为组件&#xff0c;但是组件又是无法独立运行的&#xff0c;必须结合其他组件一起才能最终解决问题。就好比汽车&#xff0c;…

同步任务和异步任务的执行过程

同步任务和异步任务的执行过程 1、执行过程描述2、EventLoop的概念 1、执行过程描述 同步任务 是由JS主线程按次序执行异步任务委托给宿主环境执行已完成的异步任务对应的回调函数&#xff0c;会被加入到任务队列中等待执行JS的主线程的执行栈被清空后&#xff0c;会读取任务队…

Java026——System 类和Scanner 类

一、System 类 1.1、System 类提供的常用方法 方法 功能描述 ----------------------------------------------------------------------------------------------------------------------- currentTimeMillis() 返回当前计算机时间 和 格林威治时间&#xff…

mysql查询练习

1.创建表 CREATE TABLE worker( 部门号 int(11) NOT NULL, 职工号 int(11) NOT NULL, 工作时间 date NOT NULL,工资 float(8,2) NOT NULL,政治面貌 varchar(10) NOT NULL DEFAULT 群众 , 姓名 varchar(20) NOT NULL,出生日期 date NOT NULL,PRIMARY KEY (职工号))ENGINE…

4.3Java EE——一对多查询

用户与订单关联关系图​​​​​​​ 与一对一的关联关系相比&#xff0c;接触更多的关联关系是一对多&#xff08;或多对一&#xff09;。例如一个用户可以有多个订单&#xff0c;多个订单也可以归一个用户所有。用户和订单的关联关系如图。 一、<collection>元素 在MyB…

前端技术学习第九讲:VUE基础语法---VUE常用指令

VUE常用指令 在VUE学习中&#xff0c;通常使用相关指令使VUE对象中的内容与网页进行挂载绑定&#xff0c;是我们的数据与视图之间产生关联&#xff0c;完成渐进式动态效果。VUE指令都会以“v-”开头。 指令名描述v-text将文本内容挂载到页面元素中v-html将html代码展示到页面…