可以将每个html公共的部分做成一个基本模板,其他模板继承这个基本模板,则会拥有基本模板的所有内容。

views.py

from django.shortcuts import render

def index(request):
context = {'username': 'zhiliao'}
return render(request,'index.html',context=context) def company(request):
return render(request,'company.html') def school(request):
return render(request,'school.html')

基本模板base.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<header>
<ul>
<li><a href="/">首页</a></li>
<li><a href="{% url 'company' %}">公司</a></li>
<li><a href="{% url 'school' %}">校园</a></li>
<li>{{ username }}</li>
</ul>
</header>
<div class="content">
{% block content %}
我是父模板中content的代码
{% endblock %}<!--整个block块相当于是给各个子模板开的接口-->
</div>
<footer>
这是footer部分
</footer>
</body>
</html>

在父模板中,block块相当于给各个子模板开了接口,需要继承的子模板可在block块中自定义需要显示的内容。

其他继承base.html的模板

{% extends 'base.html' %}  <!--表示这个模板继承base.html,且必须放在最前面,由于两者在统一路径下所以是直接写的,如果不是需要注意路径问题-->
{% block content %} <!--子模板中的所有内容必须写在block块中-->
<p>{{ block.super }}</p><!--显示父模板中的block块中的内容-->
这是school块自己的内容
{% endblock %}
<!--写在这里的内容不会被显示-->

注意:

1.父模板中可以有多个block块,但是不允许出现相同名称的block块

2.在子模板中,继承父模板的语句必须放在最前面,并且需要注意路径问题

3.子模板中自定义显示的任何内容都必须在block块中,放在其他任何地方都不会被显示

4.可通过{{block.super}}显示父模板中block块中的内容

显示效果

同理,可将常用的较小的模块写成一个模板,在需要用到的时候通过{%  include 模板名称 %}来包含。

django模板继承的更多相关文章

  1. [py][mx]django模板继承-课程列表页

    课程列表页分析 1,机构类型 2,所在地区 3.排序 学习人数 先分析下 纵观页面,页头页脚都一样. django提供了模板继承. 至少 不同页面的title 面包屑路径 content内容不一致,以 ...

  2. [py]django模板继承

    参考 1.展示arr,d等数据类型 2.逻辑for if / url获取 3.获取内置变量 django模板继承 通过搞一个base.html 这个base.html可以包含两类 block片断 其他 ...

  3. Python学习---django模板继承180123

    django模板继承  --20180123 a.include 模板标签 b.extend(继承)模板标签 ------include 模板标签 该标签允许在(模板中)包含其它的模板的内容. 标签的 ...

  4. Django 2.0 学习(13):Django模板继承和静态文件

    Django模板继承和静态文件 模板继承(extend) Django模板引擎中最强大也是最复杂的部分就是模板继承了,模板继承可以让我们创建一个基本的"骨架"模板,它可以包含网页中 ...

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

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

  6. python【第二十一篇】Django模板继承、分页、cookie验证

    1.模板继承 母版master.html {% block title %}{% endblock %}2 {% block table-cont %}{% endblock %} 子板 {% ext ...

  7. Django 模板继承

    本质上来说,模板继承就是先构造一个基础框架模板,而后在其子模板中对它所包含站点公用部分和定义块进行重载. 让我们通过修改 current_datetime.html 文件,为 current_date ...

  8. Django模板继承和引用

    一.模板继承 1.模板继承可以在创建一个基本“骨架”后,被其它子模板继承并覆盖,通过修改基础模板可以修改子模板中的所有框架 2.在模板teacher文件夹下创建基础模板 {% block xxx}与{ ...

  9. python测试开发django-7.django模板继承(block和extends)

    前言 打开一个网站时候,点导航栏切换到不同的页面,发现导航部分是不变的,只是页面的主体内容变了,于是就可以写个母模板,其它的子页面继承母模板就可以了. 母模板 可以在母模板中添加多个块标签,每个块标签 ...

随机推荐

  1. JDK 1.8源码阅读 ArrayList

    一,前言 ArrayList是Java开发中使用比较频繁的一个类,通过对源码的解读,可以了解ArrayList的内部结构以及实现方法,清楚它的优缺点,以便我们在编程时灵活运用. 二,ArrayList ...

  2. centos 打包报错Can't connect to X11 window server using ':0.0' as the value of the DISPLAY variable.

    参考: https://blog.csdn.net/salonzhou/article/details/8990237https://stackoverflow.com/questions/23358 ...

  3. 查看Andorid应用是32位还是64位

    adb shell cat /proc/进程pid/maps 查看linker位数即可

  4. OEMCC 13.2 集群版本安装部署

    之前测试部署过OEMCC 13.2单机,具体可参考之前随笔: OEMCC 13.2 安装部署 当时环境:两台主机,系统RHEL 6.5,分别部署OMS和OMR: OMS,也就是OEMCC的服务端 IP ...

  5. JavaScript-switch-case运用-案例

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  6. 记前些日子archlinux更新后无法调节声音的解决方法

    桌面环境用的是xfce4. 自从某次更新过后,panel中调节声音的插件变成了 xfce4-pulseaudio-plugin.然后就发现在panel中无法调节声音了. 在这个插件的属性中发现了一项设 ...

  7. 去掉idea中竖线

    1.现象如下: 2.解决办法. 3.解决后如下:

  8. 《大话设计模式》c++实现 代理模式

    代理模式 在代理模式(Proxy Pattern)中,一个类代表另一个类的功能.这种类型的设计模式属于结构型模式. 在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口. 介绍 意图:为其 ...

  9. 阿里云Centos7 yum安装MySQL5.6

    安装mysql5姿势是要先安装带有可用的mysql5系列社区版资源的rpm包 [root@iZ28gvqe4biZ ~]# rpm -Uvh http://dev.mysql.com/get/mysq ...

  10. sitecore系列教程之Sitecore个性化定制体验的内容策略

    这是利用Sitecore个性化引擎实现数字化转型的三部分系列文章的第一部分. 想象一下这种情况:您是一家B2C公司,拥有源源不断的客户群,支持您的直接面向消费者的产品.您最近推出了一项新服务,旨在为不 ...