在编写html页面时,我们会发现部分html代码是可以重复的,比如csdn的头部或者尾部,在其他页面也许都会用到,如果每个页面都要写一次这些代码,那么耦合度就高,我们可以将这部分代码抽离出来,通过include标签来引入
1. include模版
hedaer.html
<p>我是头部</p>
footer.html
<p>我是尾部</p>
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Django学习</title>
</head>
<body>
{% include 'hedaer.html' %}
内容
{% include 'footer.html' %}
</body>
</html>
效果
2. 模板继承
比include更强大的实现,类似于python继承,子类可以继承父类的属性和方法,而模版继承就是子模版可以继承父模版的内容,也可以实现vue插槽功能
父模版:block设置子模版自定义填充内容,类似block挖了一个坑,并命名坑名:content,如果有子模版继承了它,那么子模版可以自己找命名坑:content,然后把自己需要的东西填进去
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>{% block title %}{% endblock %}</title>
</head>
<body>
{% include 'hedaer.html' %}
{% block content %}
{% endblock %}
{% include 'footer.html' %}
</body>
</html>
子模版:extends必须要第一行
{% extends 'base.html' %}
{% block title %}子模版标题{% endblock %}
{% block content %}
<h1>我是子模版的内容</h1>
{% endblock %}