我是mako的新手,想要从模板.py脚本以编程方式创建.py脚本。这样的工作也是如此
让我们说我的模板脚本有一个变量var1 = ${var1}
,它取整数值。我希望能够使用var1
变量的特定值创建许多副本。我如何创建一个将var1
声明为列表的调用者,比如说var1 = [1,2,3,4]
并迭代这些值并将它们传递给模板。如何做到这一点,像render(**locals())
那样有效吗?
另外我无法下载Mako,有没有可用的windows python 2.7下载?
答案 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
进行安装。