带有 mako 脚本的循环输出的一行
One-liner for loop output with mako script
是否可以将 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 指令。
正如 mako documentation 所说,您可以通过在行尾添加反斜杠 \
来消耗行尾字符。所以你的模板应该是这样的:
items=\
% for d in data:
${d}${'' if loop.last else ','}\
% endfor
是否可以将 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 指令。
正如 mako documentation 所说,您可以通过在行尾添加反斜杠 \
来消耗行尾字符。所以你的模板应该是这样的:
items=\
% for d in data:
${d}${'' if loop.last else ','}\
% endfor