如何确定Jinja2模板块是否为空?

Ina*_*ist 24 templates block jinja2 flask

我想检测Jinja2模板块内容是否为空.像这样的东西:

{% block foo %}{% endblock foo %}{% if foo %} - {% endif %}Blah Blah Blah
Run Code Online (Sandbox Code Playgroud)

我想要的是块定义本身之外的条件文本.在设计的示例中,我希望能够在块- 之后插入条件字符串,当且当块被覆盖且不为空时.

这可能吗?

Sea*_*ira 39

只需拨打电话:

{% if self.foo() %} - {% endif %}
Run Code Online (Sandbox Code Playgroud)

  • @BrianPeterson:使用[`trim`](http://jinja.pocoo.org/docs/dev/templates/#trim)过滤器忽略前导和尾随空格:`{%if self.foo()| trim%} - {%endif%}`. (3认同)
  • @Inactivist - 它被埋在 [模板设计器文档](http://jinja.pocoo.org/docs/templates/#child-template) “如果你想多次打印一个块,你可以使用特殊的 self变量并调用具有该名称的块”。 (2认同)
  • 请注意,所讨论的块完全为空是很重要的.我有一个换行符正在评估空字符串,但仍被视为真实. (2认同)