Mako for python

时间:2012-03-03 22:06:03

标签: python mako

我是mako的新手,想要从模板.py脚本以编程方式创建.py脚本。这样的工作也是如此

让我们说我的模板脚本有一个变量var1 = ${var1},它取整数值。我希望能够使用var1变量的特定值创建许多副本。我如何创建一个将var1声明为列表的调用者,比如说var1 = [1,2,3,4]并迭代这些值并将它们传递给模板。如何做到这一点,像render(**locals())那样有效吗?

另外我无法下载Mako,有没有可用的windows python 2.7下载?

1 个答案:

答案 0 :(得分:3)

拥有模板对象后,您可以迭代所需的值,并使用render方法获取新输出,如下所示:

from mako.template import Template

template = Template('var1 = ${var1}')

for v in range(1, 5):
    context = {'var1': v}
    print template.render(**context)

示例输出:

var1 = 1
var1 = 2
var1 = 3
var1 = 4

关于使用locals()的想法,这当然有效:

for var1 in range(1, 5):
    print template.render(**locals())

无论如何,我更喜欢显式创建上下文字典。这与zen of python whith状态一致,即显式优于隐式。

最后,关于安装问题,我不知道有任何可用的二进制文件,但您可以使用mako download page中所述的pip进行安装。