Python:无法访问Jinja中的宏

时间:2013-06-07 17:39:45

标签: python parsing macros jinja2

我正在尝试在jinja文件中使用宏。这是我的代码:

{{ display(class = "hello") }}

{% macro display(class) %}
    this is a macro
{% endmacro %}

这很简单,从我在所见的所有例子中看到的,它应该有效。但是,当我去运行程序时,会发生以下错误:

第123行,在顶级模板代码{{display(class =“hello”)}}

有什么想法吗?

编辑:我最初在标题中使用了yaml而不是jinja。道歉。

1 个答案:

答案 0 :(得分:2)

必须在使用之前定义或导入宏

Jinja site上的示例显示:

{% macro input(name, value='', type='text', size=20) -%}
    <input type="{{ type }}" name="{{ name }}" value="{{
        value|e }}" size="{{ size }}">
{%- endmacro %}

定义后调用如下:

<p>{{ input('username') }}</p>
<p>{{ input('password', type='password') }}</p>