我使用带有pyjade的烧瓶进行模板化。我可以直接访问模板中的上下文变量,甚至可以在继承的模板中访问,但是当我包含mixins或尝试从另一个模板导入mixins时,我不能访问。这是一个例子:
My Flask应用程序提供此页面:
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的缺点,还是有解决方法?
答案 0 :(得分:1)
这不是由pyjade引起的,而是Jinja2 ......
您必须导入模板“with context”。 See Jinja2 docs
这应该有效:
- from 'mixins.jade' import m with context
div= foo
+m()