我使用带有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()