1

我正在使用带有 pyjade 的烧瓶进行模板化。我可以直接访问模板中的上下文变量,甚至可以在继承的模板中访问,但当我包含 mixins 或尝试从另一个模板导入 mixins 时则不行。这是示例:

我的 Flask 应用程序服务于这个页面:

def home():
    return render_template('index.jade', foo='bar')

所以,foo是在现在的上下文中。现在假设我有以下混合mixins.jade

mixin m()
    div= foo

在我的模板中index.jade

- from 'mixins.jade' import m

div= foo
+m()

在模板本身中,我可以foo很好地阅读,但是在导入的 mixin 中,我得到了

jinja2.exceptions.UndefinedError: 'foo' is undefined

这是pyjade的缺点,还是有解决方法?

4

1 回答 1

1

这不是由 pyjade 而是由 Jinja2 引起的......

您必须“带上下文”导入模板。请参阅 Jinja2 文档

这应该有效:

- from 'mixins.jade' import m with context

div= foo
+m()
于 2014-09-25T22:25:02.670 回答