模板的继承和面向对象里面的继承的思想是一样的,都为了复用。我们可以发现大部分网页都会有头部和尾部信息。
父模板
如果发现在多个模板中某些内容相同,那就应该把这些内容定义到父模板中。
标签block:用于在父模板中预留区域,给子模板填充差异性的内容,名字不能相同。为了更好的可读性,建议给endblock标签写上名字,这个名字与对应的block名字相同。父模板中也可以使用上下文中传递过来的数据。
{
% block 名称 %}
预留区域,可以编写默认内容,也可以没有默认内容
{
%endblock 名称 %}
子模板
标签extends:继承,写在子模板文件的第一行。
{
% extends "父模板路径" %}
子模板不用填充父模板中的所有预留区域,如果子模板没有填充,则使用父模板定义的默认值。
填充父模板中指定名称的预留区域
{
% block 名称 %}
实际填充内容
{
{
block.super}}用于获取父模板中block的内容
<