我正在使用Jinja2进行项目。 在使用“宏”时,我遇到了需要辅助功能的问题,并且 Jinja在“呼叫阻止”中提供了很好的解决方案。
我的问题是这个, 我希望此“呼叫块”调用多个其他呼叫块。 但是,Jinja似乎无法使用此功能。
我的目标是为每种情况调用一个不同的私有函数(或在Jinja情况下为“调用块”)来实现与switch case语句非常相似的东西。
**重要说明: 我知道可以通过使用Flask对python函数进行扩展来解决此问题。我正在寻找Jinja解决方案。
这是我要实现的一些示例代码:
{% macro foo(num) %}
{{ caller(num) }}
{% endmacro %}
{% call(num) foo(number) %}
{{ if condition1(num) is True }}
{{ helper_call_1(num) }}
{{ if condition2(num) is True }}
{{ helper_call_2(num) }}
... for any number of conditions
{% endcall %}
谢谢!