2014-11-17 48 views
0

我知道块标记的用途是取代父母的内容和/或提供一个占位符,以便孩子可以填写内容。但为了避免手动重复和可能的不一致,我想知道是否有任何方法使{%block something%}呈现为(或任何其他HTML元素)。在jinja2中渲染块标记作为DIV

实施例:

{% block content %} 
Hello world 
{% endblock content %} 

呈现为:

... 
<div id="content"> 
Hello world 
</div> 
... 

我使用的Jinja2与烧瓶

回答

0

做到这一点的方法是移动标签内的块。

<div id="content"> 
    {% block content %}{% endblock %} 
</div> 

如果有时候您想要使用不同的标签,您可以随时将整个东西包装在另一个块中。

{% block contenttag %} 
    <div id="content"> 
     {% block content %}{% endblock %} 
    </div> 
{% endblock %} 
+0

这是我想要避免的。因为根据一些请求参数,我可以有不同的父模板,所以我必须在每个模板上重复DIV – Matt

+0

它们是否从一个公共基础继承?它可以在那里定义? – dirn

+0

父模板位于层次结构的顶部。设想一个“layout_full.html”和“layout_ajax.html”作为可能的父母。 – Matt

0

我终于可以通过实现我自己的Jinja2加载程序并在从磁盘加载的内容中注入元素来做到这一点。