flask模板继承

2019-05-10  本文已影响0人  张大超Charlie

模板继承笔记:

为什么需要模板继承:

模板继承可以把一些公用代码单独抽取出来放到一个父模板中,以后子模版直接继承就可以使用。这样重复的代码修改起来也比较方便。

模板继承语法:

使用‘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 %}

其他注意事项:

  1. 子模版中的代码,第一行应该是继承的代码。'extends'.

  2. 子模版中,如果要实现自己的代码,应该放到block中,如果放到外面,将无法被渲染。

上一篇 下一篇

猜你喜欢

热点阅读