我正在使用带有jinja的烧瓶。
我知道你可以定义一个包含多个占位符块的基页模板:
<html>
<head>
[ standard meta tags, etc go here ]
{% block css %}{% endblock %}
</head>
<body>
[ standard page header goes here ]
{% block content %}{% endblock %}
[ standard page footer goes here ]
{% block javascript %}{% endblock %}
</body>
</html>
我知道您可以使用单个占位符定义宏:
{% macro dialog() %}
<div class="dialog">
[ standard dialog header ]
{{ caller() }}
</div>
{% endmacro %}
{% call dialog() %}
<div class="log-in">
Log in or sign up! (etc.)
</div>
{% endcall %}
但是可以定义一个具有多个占位符块的宏吗?
答案 0 :(得分:4)
caller
。然而,您可以将参数从宏传递回调用上下文并模拟您想要的行为,如下所示:
{% macro twoblocks()%}
<div class="content-a">
{{ caller(True) }}
</div>
<div class="content-b">
{{ caller(False) }}
</div>
{% endmacro %}
{% call(isA) twoblocks() %}
{% if isA %}
A content
{% else %}
B content
{% endif %}
{% endcall %}