模板继承
模板继承是为了重用模板页面中相同的部分。在网站开发中继承主要使用在网站的顶部菜单、底部。在不同的页面中可以少写很多重复代码。
模板继承主要有父模板,子模板。
父模板:
父模板中主要是写子模板重复代码,实际上就是一个普通模板文件。但是父模板中需要预留位置给子模板填充。
在父模板中使用 block
标签给子模板预留位置。
{% block 名称 %}
预留子模板填充内容,父模板中也可以写默认内容
{% endblock %}
示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>这里是头部</h1>
<hr/>
{% block body %}
这里预留给子模板填充
{% endblock body %}
<hr/>
<h2> 这里是底部内容</h2>
</body>
</html>
子模板继承
用extends
在子模板的第一行声明继承的父模板
子模板填充父模板中的内容,结束标签可以不填名称,但是为了方便阅读建议都写上。
{% extends 'base.html' %}
{% block 父模板中的名称 % }
填充内容
{% endblock 父模板中的名称 % }
如果父模板中预留块中有默认内容,子模板没有填充的话将会使用默认内容,子模板一旦填充会覆盖父模板中默认内容。
要填充父模板,而且还需要调用父模板的内容使用super()
调用父模板内容。
子模板:
{% block body %}
<h6> 子模板填充的内容</h6>
{{ super() }}
{% endblock body %}