是否可以仅将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

关于python - 使用mako脚本的一线循环输出,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31227059/

10-11 22:05