python - 如何避免 mako %def 中的重复过滤器规范?

标签 python template-engine mako

我发现自己在我的 mako 代码中对所有 %def 重复相同的过滤器属性:

<%def name="mydef1(a,b)" filter="trim">
# something something something
</%def>

... 

<%def name="mydef2(b)" filter="trim">
# something something something
</%def>

有没有办法为所有 %def 指定一组默认过滤器并避免在我的代码中重复“filter="trim"'?

我注意到有 an option to specify default filters for expression filters , 但我找不到 %def 的类似内容。

最佳答案

您可以使用一些解决方法:

  1. 您可以使用 default_filters争论你是否还好 importing the defs programmatically或通过 loading them from a file .
  2. 您可以 nest the defs在父定义中,并应用 过滤到父 def(我当前的机器上没有 mako,所以我不能发短信,但我 99% 确定这有效,如果我错了请告诉我。)

    <%def name="filterdefs()" filter="trim">
    
        <%def name="mydef1(a,b)">
        # something something something
        </%def>
    
        <%def name="mydef2(b)">
        # something something something
        </%def>
    
    </def>
    
  3. 最后,您可以使用 buffer_filters如建议的 注释。但是,您可以不添加 buffered="True"capture(myDef) 调用 def而不是 myDef()

关于python - 如何避免 mako %def 中的重复过滤器规范?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31407035/

相关文章:

python - 具有正弦波纹的 n 阶多项式的曲线拟合

python - 使用 str.format_map() 时超出最大字符串递归

php - 如何在 Laravel 4.1 的 Blade 模板中选择下拉菜单?

php - 网页顶部的空白区域

grails - Playframework - GSP 和标签库?

Python - Mako 模板 : How to check for incoming string?

python - 多处理是否在这种情况下复制对象?

python - 如何在 cherrypy 中使用全局变量?

javascript - 如何将 javascript 的值传递给 Mako 模板

Python - UnicodeDecodeError : 'charmap' codec can't decode byte 0x9d in position 1070: character maps to <undefined>