模板继承笔记:
为什么需要模板继承:
模板继承可以把一些公用代码单独抽取出来放到一个父模板中,以后子模版直接继承就可以使用。这样重复的代码修改起来也比较方便。
模板继承语法:
使用‘extend’语句,来指明继承的父模板。
示例代码:
{% extends 'base.html' %}
block语法:
一般在父模版中,定义一些公共的代码。子模版可能要根据具体的需求实现不同的代码。
这时候父模版就应该提供一个接口,让父模版来实现。从而实现具体业务需求的功能。
在父模版中:
{% block block的名字 %}
{% endblock %}
在子模版中:
{% extends 'base.html' %}
{% block body_block %}
子模板代码
{% endblock %}
调用父模版的代码block中的代码:
默认情况下,子模版如果实现了父模版定义的block,那么子模版block中的代码就会覆盖掉父模版中的代码,如果想在子模版中仍然保持父模版代码,需要用super() 函数调用。具体代码如下:
{% block body_block %}
{{ super() }} {#super()调用父模版代码#}
<p style="background-color: green;">首页子模板代码</p>
{% endblock %}
调用另一个block中的代码:
一个模板中使用其他模板的代码。那么可以通过'{{ self.其他block名字() }}'
示例代码如下:
{% block another_block %}
我是另一个模板的代码
{% endblock %}
{% block body_block %}
{{ self.another_block() }}
<p style="background-color: green;">首页子模板代码</p>
{% endblock %}
其他注意事项:
-
子模版中的代码,第一行应该是继承的代码。'extends'.
-
子模版中,如果要实现自己的代码,应该放到block中,如果放到外面,将无法被渲染。
网友评论