【问题标题】:One-liner for loop output with mako script使用 mako 脚本的单行循环输出
【发布时间】:2015-09-22 11:46:49
【问题描述】:

是否可以仅将 mako 脚本的 for 循环填充到一行?到目前为止,我看到的所有示例都会创建多行,并且在一行中编写 mako for 循环会导致 mako 错误。

填充mako模板的示例代码:

data = ['foo', 'bar', 'baz']
template = Template(filename='test.mak')
template.render(data=data)

模板文件test.mak(创建多行不是我想要的):

items=
% for d in data:
${d}${'' if loop.last else ','}
% endfor

预期的扩展 mako 脚本输出应为 items=foo,bar,baz

我目前的解决方法是 items=${','.join(data)} 作为 mako 脚本,但我想知道这是否也可以使用内置的 mako 指令。

【问题讨论】:

    标签: python template-engine mako


    【解决方案1】:

    正如 mako documentation 所说,您可以通过在行尾添加反斜杠 \ 来消耗结束符。所以你的模板应该是这样的:

    items=\
    % for d in data:
    ${d}${'' if loop.last else ','}\
    % endfor
    

    【讨论】:

    • 谢谢。我没有在文档中发现这部分。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 2015-01-21
    • 2016-07-26
    • 1970-01-01
    相关资源
    最近更新 更多