Мако для питона - PullRequest
       6

Мако для питона

2 голосов
/ 04 марта 2012

Я новичок в mako и хочу создавать сценарии .py программно из шаблона .py. Так что-то вроде этой работы

Допустим, в моем шаблонном скрипте есть переменная var1 = ${var1}, которая принимает целочисленные значения. Я хочу иметь возможность создавать много копий с конкретными значениями переменной var1. Как создать вызывающую программу, которая объявляет var1 в виде списка, скажем var1 = [1,2,3,4], перебирает значения и передает их в шаблон. Как это сделать, работает что-то вроде render(**locals())?

Также я не могу скачать Mako, есть ли доступная загрузка Windows Python 2.7?

1 Ответ

3 голосов
/ 04 марта 2012

Получив объект шаблона, вы можете просто перебрать нужные значения и использовать метод 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())

В любом случае, я предпочитаю явно создавать контекстный словарь. Это согласуется с дзен python , который утверждает, что явное лучше, чем неявное.

Наконец, что касается проблемы установки, я не знаю ни одного доступного двоичного файла, но вы можете установить, используя pip, как описано на странице загрузки mako .

...