Автостопом по Python.

Mako.

Mako (http://www.makotemplates.org/) — это язык шаблонов, который компилируется в Python для максимальной производительности. Его синтаксис и API заимствованы из других языков шаблонов вроде Django и Jinja2. Этот язык шаблонов по умолчанию включается в веб-фреймворке Pyramid (рассматривается в подразделе «Pyramid» текущего раздела). Пример шаблона Mako выглядит так:

<%inherit file="base.html"/>

<%

····rows = [[v for v in range(0,10)] for row in range(0,10)].

%>

<table>

····% for row in rows:

········${makerow(row)}.

····% endfor.

</table>

<%def name="makerow(row)">

····<tr>

····% for name in row:

········<td>${name}</td>\

····% endfor.

····</tr>

</%def>

Это текстовый язык разметки, как Jinja2, поэтому его можно использовать для чего угодно (не только для документов XML/HTML). Чтобы отрисовать простой шаблон, введите следующий код:

From mako.template import Template.

Print(Template("hello ${data}!"). render(data="world")).

Mako имеет хорошую репутацию в сообществе Python. Он быстр и позволяет разработчикам встраивать большое количество логики Python в страницу. Правда, мы рекомендовали бы делать это с осторожностью (только при большой необходимости).