继承flask/jinja2模板时,是否可以添加新的块?

Ale*_*lin 1 jinja2 flask

Flask中继承模板时是否可以添加更多的块?

我有一个来自flask-bootstrap的基本模板,我想向其中添加一个块(在我自己的base.html中)

我尝试了一种简单的方法(只是简单地向我的 base.html 添加更多块)。然而,似乎新的块被忽略了。我可以通过在现有的“内容”块中创建嵌套块来模拟所需的行为,但随后我必须将 {{super()}} 样板放入每个模板中。

有没有办法添加更多块?

dir*_*irn 5

您可以添加新块,但它们必须在父模板中存在的块内定义。例如,如果content在扩展的模板中定义

<body>
    {% block content %}{% endblock %}
</body>
Run Code Online (Sandbox Code Playgroud)

然后,您可以在基本模板中定义其中的块

{% block content %}
    {% block header %}{% endblock %}
    {% block body %}{% endblock %}
    {% block footer %}{% endblock %}
{% endblock %}
Run Code Online (Sandbox Code Playgroud)

然后,在页面模板中,您可以扩展基本模板并根据需要覆盖其块。