Jinja

Jinja (произносится как дзиндзя) — это шаблонизатор для языка программирования Python. Он подобен шаблонизатору Django, предоставляет Python-подобные выражения, обеспечивая исполнение шаблонов в песочнице. Это текстовый шаблонизатор, поэтому он может быть использован для создания любого вида разметки, а также исходного кода. Лицензирован под лицензией BSD.

Шаблонизатор Jinja позволяет настраивать теги[1], фильтры, тесты и глобальные переменные[2]. В отличие от шаблонизатора Django, Jinja позволяет конструктору шаблонов вызывать функции с аргументами на объектах.

Jinja, как и Smarty, также поставляется с простой в использовании системой фильтров, похожей на конвейер Unix.

Пример

Простой пример шаблона:

from jinja import from_stringtmpl = from_string('''\<html><head><title>{{ variable|escape }}</title></head><body>{% for item in item_list %}   {{ item }}{% if not loop.last %},{% endif %}{% endfor %}</body></html>''')print(tmpl.render(    variable='Value with <unsafe> data',    item_list=[1, 2, 3, 4, 5, 6]))

Результат в HTML:

<html><head><title>Value with &lt;unsafe&gt; data</title></head><body>    1,    2,    3,    4,    5,    6</body></html>

Применение

Помимо веб-фреймворков (Flask), Jinja2 используется и, например, в системе управления конфигурациями SaltStack[3] и Ansible.

Примечания

Литература

  • Cunningham, K. Python in 24 Hours, Sams Teach Yourself. — Pearson Education, 2013. — 320 p. — ISBN 9780133354461.

Ссылки