访问包含或导入的Jade模板中的Flask上下文变量



我使用带有pyjade的烧瓶作为模板。我可以直接访问模板中的上下文变量,甚至在继承的模板中也可以,但当我包含mixin或尝试从另一个模板导入mixin时,就不能访问了。下面是一个例子:

我的烧瓶应用程序服务于此页面:

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

因此,foo现在就在上下文中。现在假设我在mixins.jade:中有以下mixin

mixin m()
    div= foo

在我的模板index.jade:中

- from 'mixins.jade' import m
div= foo
+m()

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

jinja2.exceptions.UndefinedError: 'foo' is undefined

这是pyjade的缺点,还是有变通办法?

这不是由pyjade引起的,而是由Jinja2…引起的

您必须导入"带上下文"的模板。参见Jinja2文档

这应该有效:

- from 'mixins.jade' import m with context
div= foo
+m()

最新更新