django中模板继承的extends和include
参考博客:https://blog.csdn.net/xujin0/article/details/83420633
总结:
0. {% include "xxx"%}是将其他html代码段加入到当前html中,当前html中可能会有好多{% include "xxx"%}, include这部分不能重写;
{% extends 'base.html' %}
的意思时继承自base.html
,这个里面有的代码继承之后的模板中全部都有。base.html
中的{% block content %}是一个接口,我们可以以在继承的模板中间使用{% block content %}来改变里面的代码。- 使用{% block content %}标签之后,父模板中{% block content %}标签中的代码都不会在子模板中显示出来。(就像上面
base.html
中的我是父摸版中的代码从来没有显示出来过。) - 如果想要父模板中{% block content %}标签中的代码显示出来,则需要添加
{{ block.super }}
就能够显示了。 - 如果我们在子模板中将代码放在{% block content %}标签的外面,Django是不会给我们渲染的,即是没有效果的。
{% extends 'base.html' %}
标签必须是第一个标签,因此我们一般都是将{% extends 'base.html' %}
放在第一行。{% extend %}
标签和{% include %}
传参数是一样的,如果给子模板传递了一个参数,那么该子模板中的父模板能接收到参数,而其他子模板中不能接收到参数。