Webpy模板循环

时间:2013-09-08 15:28:20

标签: python templates web.py

我在理解循环语法如何与webpy一起工作时遇到了一些麻烦。

我有一个模板,其中包含一段代码:

            $for point in slow_points:
                L.marker(${point}, {icon: slowIcon}).addTo(map);

            });

最后的});是关闭jquery函数。在python缩进之后,我希望});不应该在我的输出页面中重复,但确实如此。为了让});不再重复,我必须这样做:

            $for point in slow_points:
                L.marker(${point}, {icon: slowIcon}).addTo(map);

});

我的});尽可能地向左移动,因此基本上忽略了任何类型的缩进。

这是预期的行为吗?是否有一些其他语法我可以用于循环,这将允许我保持我的缩进“干净”但不会导致应该在for循环块之外的代码重复?

1 个答案:

答案 0 :(得分:0)

举出你的榜样,它真的不应该重复});。以下代码

import web
template = """$def with(slow_points)
    $for point in slow_points:
        L.marker(${point}, {icon: slowIcon}).addTo(map);
    });
"""
page = web.template.Template(template)
print page(['a', 'b', 'c'])

输出:

L.marker(a, {icon: slowIcon}).addTo(map);
L.marker(b, {icon: slowIcon}).addTo(map);
L.marker(c, {icon: slowIcon}).addTo(map);
});

请确保您有正确的缩进样式,其中1个缩进等于4个空格。