从包含的或导入的Jade模板访问Flask上下文变量?
我正在用装有pyjade的烧瓶做模板。我可以直接访问模板中的上下文变量,甚至可以在继承的模板中访问,但当我包含mixin或尝试从另一个模板导入mixin时,就不能访问。下面是一个例子: 我的烧瓶应用程序用于此页面:从包含的或导入的Jade模板访问Flask上下文变量?,flask,pyjade,Flask,Pyjade,我正在用装有pyjade的烧瓶做模板。我可以直接访问模板中的上下文变量,甚至可以在继承的模板中访问,但当我包含mixin或尝试从另一个模板导入mixin时,就不能访问。下面是一个例子: 我的烧瓶应用程序用于此页面: def home(): return render_template('index.jade', foo='bar') 因此,foo现在就在上下文中。现在让我们假设我在mixinmixin.jade中有以下mixin: mixin m() div= foo - f
def home():
return render_template('index.jade', foo='bar')
因此,foo
现在就在上下文中。现在让我们假设我在mixinmixin.jade中有以下mixin:
mixin m()
div= foo
- from 'mixins.jade' import m
div= foo
+m()
在我的模板index.jade
中:
mixin m()
div= foo
- from 'mixins.jade' import m
div= foo
+m()
在模板本身中,我可以很好地读取foo
,但是在导入的mixin中,我得到了
jinja2.exceptions.UndefinedError: 'foo' is undefined
这是pyjade的一个缺点,还是有解决办法?这不是pyjade造成的,而是Jinja2
您必须导入“带有上下文”的模板
这应该起作用:
- from 'mixins.jade' import m with context
div= foo
+m()
谢谢你,也谢谢你的派杰德!既然我已经把您带到这里,那么包含mixin
是否也应该在这里工作,以便在文件中包含所有mixin,而不必使用从导入显式导入mixin?因为它不…它应该,但在存储库变为非活动状态之前,这个目标从未实现: