【问题标题】:render a jinja2 template object in pylons with filters使用过滤器在 pylons 中渲染 jinja2 模板对象
【发布时间】:2012-02-03 15:19:20
【问题描述】:

我正在开发一个使用 jinja2 作为其模板引擎的 pylons 项目。该项目在模板引擎中添加了许多自定义过滤器。

我有一个模板对象:

>>> t = Template("this is a template {{ var|custom_filter }}!!")
>>> t.render(var="woop woop")

在这个例子中我得到TemplateAssertionError: no filter named 'custom_filter' 我怎样才能轻松地渲染模板对象而不必:从文件加载它们,或者每次我想渲染模板时手动添加每个自定义过滤器。

【问题讨论】:

    标签: python pylons jinja2


    【解决方案1】:

    您可以将过滤器加载到应用程序环境中。查看this post,了解有关如何执行此操作的特定于 Pylons 的说明:

    from yourapp.lib import extensions
    
    config['pylons.app_globals'].jinja2_env = Environment(loader=ChoiceLoader(
                [FileSystemLoader(path) for path in paths['templates']]),
                 extensions=[extensions.custom_filter, ...]))
    

    【讨论】:

    • 这仅适用于从文件系统加载模板时向模板系统添加过滤器。我正在从字符串加载模板。
    猜你喜欢
    • 1970-01-01
    • 2017-03-01
    • 2014-12-23
    • 2016-03-05
    • 1970-01-01
    • 1970-01-01
    • 2020-12-18
    • 2018-07-29
    • 2016-08-23
    相关资源
    最近更新 更多