我发现自己在我的 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 的类似内容。
最佳答案
您可以使用一些解决方法:
- 您可以使用
default_filters
争论你是否还好 importing thedefs
programmatically或通过 loading them from a file . 您可以 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>
最后,您可以使用
buffer_filters
如建议的 注释。但是,您可以不添加buffered="True"
用capture(myDef)
调用def
而不是myDef()
关于python - 如何避免 mako %def 中的重复过滤器规范?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31407035/