Django模版引擎中最强大也是最复杂的部分就是模版继承了。模版继承可以让您创建一个基本的“骨架”模版,它包含您站点中的全部元素,并且可以定义能够被子模版覆盖的 block。

模板继承:

1.    新建muban.html模板文件,在形影需要替换的不同位置加上不同名称的block标签

{% block content %}

模板内容

{% endblock %}或者{% endblock content %}

2.    在新的html文件开头写:

{% extends "muban.html" %}

3.    接下来重写模板中的block标签内容:

注意:每个block标签不能同名,可以有多个(一般css/js/内容都可以有)

{% block content %}

……

{% endblock %}或者{% endblock content %}

4.    要想继承保留模板block中的内容,在重写时加上

{{ block.super }}

模板继承演示:

  muban.html  

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<style>
* {margin: 0; padding: 0; }
.c1, .nav {margin: 0 auto; width: 1200px; background-color: #d6d6d6; color: white; }
.fixed:after {content: "";display: block; clear: both; }
.navleft {float: left; }
.navright {float: right; }
ul, li {list-style: none; display: inline; }
.contentleft {float: left; width: 300px; background-color: red; height: 100px; }
.contentright {float: left; width: 900px; height: 100px; background-color: green; }
.c2 {margin: auto auto; text-align: center;vertical-align: middle; }
</style>
<title>模板继承测试</title>
</head>
<body>
<div class="c1">
<div class="nav fixed">
<div class="navleft ">
<ul>
<li>古诗</li>
<li>绝句</li>
<li>诗经</li>
</ul>
</div>
<div class="navright">
<ul>
<li>登录</li>
<li>注册</li>
</ul>
</div>
</div> <div class="content fixed">
<div class="contentleft">
<div class="c2">
<a href="http://127.0.0.1:8888/muban/">简介</a><br>
<a href="http://127.0.0.1:8888/muban_1/">古诗1</a><br>
<a href="http://127.0.0.1:8888/muban_2/">古诗2</a></div>
</div>
<div class="contentright">
<div class="c2">
{% block content %}
模板内容---简介
{% endblock %}
</div>
</div>
</div> </div>
</body>
</html>

  muban_1.thml

 {% extends "muban.html" %}
{% block content %}
<h2>You never fail just when you give up!</h2>
{% endblock %}

  muban_2.thml

 {% extends "muban.html" %}
{% block content %}
{{ block.super }}<!--继承保留模板对应标签的内容-->
<h2>Do whatever you want and smile veryday!</h2>
{% endblock %}

views.py

 def muban(request):
return render(request,"muban.html")
def muban_1(request):
return render(request,"muban_1.html")
def muban_2(request):
return render(request,"muban_2.html")

  渲染效果

  

  

  

Django模板之模板继承(extends/block)的更多相关文章

  1. Django---MTV和MVC的了解,Django的模版语言变量和逻辑,常见的模板语言过滤器,自定义过滤器,CSRF了解,Django的母版(继承extends,块block,组件include,静态文件的加载load static),自定义simple_tag和inclusion_tag

    Django---MTV和MVC的了解,Django的模版语言变量和逻辑,常见的模板语言过滤器,自定义过滤器,CSRF了解,Django的母版(继承extends,块block,组件include,静 ...

  2. django学习-8.django模板继承(block和extends)

    1.前言 django模板继承的作用:模板可以用继承的方式来实现复用,减少冗余内容. 一般来说,一个网站里一般存在多个网页的头部和尾部内容都是一致的,我们就可以通过模板继承来实现复用. 父模板用于放置 ...

  3. django基础 -- 4. 模板语言 过滤器 模板继承 FBV 和CBV 装饰器 组件

    一.语法 两种特殊符号(语法): {{ }}和 {% %} 变量相关的用{{}},逻辑相关的用{%%}. 二.变量 1. 可直接用  {{ 变量名 }} (可调用字符串, 数字 ,列表,字典,对象等) ...

  4. Django项目中模板标签及模板的继承与引用【网站中快速布置广告】

    Django项目中模板标签及模板的继承与引用 常见模板标签 {% static %} {% for x in range(x) %}{% endfor %} 循环的序号{% forloop %} 循环 ...

  5. Django——4 模板标签 模板的继承与引用

    Django 模板标签 常用标签 模板的继承与引用 模板标签 标签在渲染的过程中提供任意的逻辑 标签语法: 由%}和 {% 来定义的,例如:{%tag%} {%endtag%} 这个定义是刻意模糊的. ...

  6. Django入门--模板标签、继承与引用

    一.模板标签 Django模板引擎提供的可以在模板中进行的各种逻辑操作,是函数调用的一种特殊形式,如循环.判断等功能,期语法规则为: {% tag %} content {% tag 参数1 参数2 ...

  7. Django学习手册 - 模板继承与导入

    核心: PS:一个页面只能继承一个模板. 前置: 配置url. 配置views 关键字: 1. {% extends "index模板.html" %} 声明继承于哪个模板 ,关联 ...

  8. Django进阶Template篇002 - 模板包含和继承

    包含 {% include %} 允许在模板中包含其他模板的内容. {% include "foo/bar.html" %} {% include template_name %} ...

  9. Django day07 (一) 模板的导入 母板的继承 静态文件配置

    一:模板的导入 -写一个模板 {% include '模板的名字' %} 二:母板的继承 -写一个母版(可以留多个盒子) {% block 名字 %} / {% endblock %} 三:静态文件配 ...

  10. python Django教程 之模板渲染、循环、条件判断、常用的标签、过滤器

    python3.5 manage.py runserver python Django教程 之模板渲染.循环.条件判断.常用的标签.过滤器 一.Django模板渲染模板 1. 创建一个 zqxt_tm ...

随机推荐

  1. tp5--Excel表格导入导出

    来源于:https://www.cnblogs.com/MyIsLu/p/6830579.html PHPExcel 扩展包下载地址:             https://github.com/P ...

  2. mysql---3种常用引擎 和优点

  3. python学习01python入门一

    在正式开启python代码的学习之旅之前,先来了解一下有关python语言的一些内容吧. python的命名,起源等等,大家自行百度了解,此处不再赘述. python是一种解释型语言,具有强调代码可读 ...

  4. Django入门4: ORM 数据库操作

    大纲 一.DjangoORM 创建基本类型及生成数据库表结构 1.简介 2.创建数据库 表结构 二.Django ORM基本增删改查 1.表数据增删改查 2.表结构修改 三.Django ORM 字段 ...

  5. 业务SQL那些事--慎用LIMIT

    业务SQL那些事--慎用LIMIT 在业务中使用LIMIT限制SQL返回行数是很常见的事情,但如果不知道其中可能的坑或者说真正执行逻辑,就可能会使SQL执行非常慢,严重影响性能. LIMIT OFFS ...

  6. Norwegian Wood

    0 前言 <挪威的森林>是村上春树很有名的一部小说,但我想大多数人阅读的时候都只是把书名当作一个符号,而不是作为故事去追究. 我国台湾知名文学评论家杨照先生说过:村上的书里有太多太多典故, ...

  7. H. Subsequences (hard version) dp

    H. Subsequences (hard version) 这个题目好难啊,根本就不知道怎么dp,看了题解,理解了好一会才会的. 首先dp[i][j] 表示前面 i  个字符,形成长度为 j  的不 ...

  8. springboot使用druid连接池连接Oracle数据库的基本配置

    #阿里连接池配置 #spring.datasource.druid.driver-class-name=oracle.jdbc.driver.OracleDriver #可配可不配,阿里的数据库连接池 ...

  9. 03_CSS入门和高级技巧(1)

    上节课知识的复习 插入图片,页面中能够插入的图片类型:jpg.jpeg.bmp.png.gif:不能的psd.fw. 语法: <img src="路径" alt=" ...

  10. 软路由OpenWrt(LEDE)2020.5.10更新 UPnP+NAS+多拨+网盘+DNS优化

    近期更新:2020.05.10更新-基于OpenWrt R2020.5.9版本,源码截止2020.05.10.   交流群:QQ 1030484865 电报 t.me/t_homelede   版本说 ...