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

时间:2014-09-25 18:42:58

标签: flask pyjade

我使用带有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的缺点,还是有解决方法?

1 个答案:

答案 0 :(得分:1)

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

您必须导入模板“with context”。 See Jinja2 docs

这应该有效:

- from 'mixins.jade' import m with context

div= foo
+m()