【问题标题】:Where to put Mako filters在哪里放置 Mako 过滤器
【发布时间】:2018-04-29 15:38:59
【问题描述】:

我编写了一个添加 HTML 换行符的 Mako 过滤器:

<%!
    def makelinebreaks(text):
        return text.replace("\r", "<br/>")
%>

如果我把它放在模板文件中就可以了。但是如果我想在多个模板中使用它,那么我必须重新声明它。是否有任何文件可以放置代码,以便过滤器在我所有模板的范围内,而不是作为脚本放在它使用的每个模板中?

【问题讨论】:

    标签: python mako


    【解决方案1】:

    假设您在名为filters.mako 的模板中定义了此过滤器。然后在希望使用过滤器的模板中,只需使用&lt;%namespace&gt; 标签导入filters.mako

    <%namespace file="filters.mako" import="*"/>
    

    这相当于 Python 中的 from filters import * 构造。你也可以只导入你想要的名字

    <%namespace file="filters.mako" import="makelinebreaks"/>
    

    或者,对于等同于 import filters 的内容,请使用:

    <%namespace file="filters.mako" name="filters"/>
    

    现在您可以将过滤器用作filters. makelinebreaks

    ${something | filters.makelinebreaks}
    

    【讨论】:

      猜你喜欢
      • 2012-04-18
      • 2023-03-28
      • 1970-01-01
      • 2013-01-23
      • 2018-05-02
      • 2017-03-31
      • 2018-12-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多