@context_processor如何影响模板变量?

时间:2015-01-29 09:50:29

标签: python flask

我找到了以下代码:

@app.context_processor
def inject_user():
    if authed():
        return dict(session)
    return dict()

然后他们使用session['nonce'] = XXXXX并在模板中使用{{ nonce }}

如果我在上下文处理器中定义var,我是否知道它的所有属性? {{ nonce }}与会话值相同吗?

我得出结论,session var被传递给所有模板,但不清楚它的属性是否也是已知的,如果不是,它应该被用作session.nonce而不是nonce

1 个答案:

答案 0 :(得分:2)

Flask默认将session传递给模板上下文。这可以像在视图代码中一样使用,它是一个字典。

{{ session['nonce'] }}
or {{ session.nonce }}

您发布的上下文处理器从会话中获取所有项目并将它们直接放在模板上下文中,因此它们 无法通过session var访问。 / p>

{{ nonce }} comes from session through the context processor

最终,您发布的上下文处理器非常无用,但在某些情况下可能会很方便。