【问题标题】:When inheriting flask/jinja2 templates, is it possible to add a new block?继承flask/jinja2模板时,是否可以添加新块?
【发布时间】:2014-09-18 09:37:27
【问题描述】:

flask继承模板时是否可以添加更多block?

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

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

有没有办法只添加更多的块?

【问题讨论】:

    标签: flask jinja2


    【解决方案1】:

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

    <body>
        {% block content %}{% endblock %}
    </body>
    

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

    {% block content %}
        {% block header %}{% endblock %}
        {% block body %}{% endblock %}
        {% block footer %}{% endblock %}
    {% endblock %}
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-19
      • 2015-04-14
      • 2017-05-15
      • 1970-01-01
      • 2010-12-30
      • 1970-01-01
      • 2016-05-23
      • 2019-09-04
      相关资源
      最近更新 更多