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

从包含的或导入的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

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

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

def home():
    return render_template('index.jade', foo='bar')
因此,
foo
现在就在上下文中。现在让我们假设我在mixin
mixin.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?因为它不…它应该,但在存储库变为非活动状态之前,这个目标从未实现: