模板的继承和面向对象的继承类似,模板的继承试将经常重复的代码抽离出来,放进父模板中,父模板还可以通过block开一个接口,子模板在继承父模板之后可以再次使用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 %}需要注意的是在子模板继承父模板之后,不能在下面写标签,尽管写了标签,标签也不会被渲染