模板继承
模板的继承和面向对象的继承类似,模板的继承试将经常重复的代码抽离出来,放进父模板中,父模板还可以通过block开一个接口,子模板在继承父模板之后可以再次使用block来重写内容
extends语句
{% extends '父模板路径' %}
block语句
block必须要取名(name),name是子模板在开口过程识别是哪个接口的唯一标志
{% block name %}
{% endblock %}
父模板
父模板的开口:
- 标题内容(title标签)
- 页面内容(h2标签)
- 页面底部(div标签)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>
{% block title %}
学院
{% endblock %}
</title>
</head>
<body>
<ul>
<li>学院首页</li>
<li>教师队伍</li>
<li>学科建设</li>
</ul>
{% block content %}
<h2>首页内容</h2>
{% endblock %}
{% block footer %}
<div class="footer">
页面底部
</div>
{% endblock %}
</body>
</html>
子模板
super():和面向对象类似,可以获取父模板的内容
{% extends 'HTML/index.html' %} <!--继承父模板-->
{% block title %}
{{ super() }}学科建设 <!-- 可以使用super()来获取父模板的内容,这点和面向对象的继承类似 -->
{% endblock %}
{% block content %} <!--进行了重写-->
<h2>xxx学科</h2>
<h2>yyy学科</h2>
<h2>zzz学科</h2>
{% endblock %}
{% block footer %}
<div class="footer">
学科建设页尾
<p>二维码</p>
<p>联系我们</p>
</div>
{% endblock %}
需要注意的是在子模板继承父模板之后,不能在下面写标签,尽管写了标签,标签也不会被渲染