【问题标题】:Access Flask context variables from included or imported Jade templates?从包含或导入的 Jade 模板访问 Flask 上下文变量?
【发布时间】:2014-09-25 18:42:58
【问题描述】:

我正在使用带有 pyjade 的烧瓶进行模板。我可以直接访问模板中的上下文变量,甚至可以在继承的模板中访问,但当我包含 mixins 或尝试从另一个模板导入 mixins 时则不行。示例如下:

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

【问题讨论】:

    标签: flask pyjade


    【解决方案1】:

    这不是 pyjade 造成的,而是 Jinja2 造成的……

    您必须“带上下文”导入模板。 See Jinja2 docs

    这应该可行:

    - from 'mixins.jade' import m with context
    
    div= foo
    +m()
    

    【讨论】:

    • 谢谢你,谢谢你的pyjade!虽然我把你带到了这里,但include mixins 是否也应该在这里工作以在文件中包含所有混合,而不必使用from _ import _ 显式导入混合?因为它不...
    • 应该,但在存储库变为非活动状态之前从未达到该目标:github.com/syrusakbary/pyjade/issues/70
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-23
    • 1970-01-01
    • 1970-01-01
    • 2021-12-29
    • 2015-11-18
    • 2018-05-31
    • 2015-02-17
    相关资源
    最近更新 更多