如何控制Mako中的EOL和领先空间?

时间:2017-04-28 16:20:34

标签: python template-engine mako

通过以下内容,我想控制EOL:

{1,2,3,4,5},
{1,2,3,4,5}    

目标是打印:

% for row in data():
    {<%for i, col in enumerate(row):%>${','*bool(i)}${col}<%endfor%>},
% endfor

我尝试过这样的事情:

return /^([\w+\-]\.?)+@[a-z\d\-]+(\.[a-z\d\-]+)*\.[a-z]+$/i.test( email );

1 个答案:

答案 0 :(得分:0)

如何为输出定义一些短函数:

<%!
    def data():
        return [(1,2,3,4,5), (1,2,3,4,5)]

    join_data = lambda dat, delim: delim.join(join_row(row) for row in dat)
    join_row = lambda row:'{%s}' % ','.join(str(i) for i in row)
%>

然后

${join_data(data(), ',\n')}

将输出

{1,2,3,4,5},
{1,2,3,4,5}

或者如果你想要标签,你可以做

    ${join_data(data(), ',\n\t')}

将产生

    {1,2,3,4,5},
    {1,2,3,4,5}