使用 mako 脚本进行单行 for 循环输出

ora*_*nge 2 python template-engine mako

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

填充 mako 模板的示例代码:

data = ['foo', 'bar', 'baz']
template = Template(filename='test.mak')
template.render(data=data)
Run Code Online (Sandbox Code Playgroud)

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

items=
% for d in data:
${d}${'' if loop.last else ','}
% endfor
Run Code Online (Sandbox Code Playgroud)

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

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

Tup*_*teq 5

正如 mako文档\所说,您可以通过在行尾添加反斜杠来使用行尾字符。所以你的模板应该是这样的:

items=\
% for d in data:
${d}${'' if loop.last else ','}\
% endfor
Run Code Online (Sandbox Code Playgroud)