Jinja

Материал из Википедии — свободной энциклопедии
Это старая версия этой страницы, сохранённая 5.18.199.226 (обсуждение) в 08:17, 29 января 2022 (стилевые правки, исправление внутренних ссылок). Она может серьёзно отличаться от текущей версии.
Перейти к навигации Перейти к поиску

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

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

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

Пример

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

from jinja import from_string

tmpl = 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.

Примечания

  1. Extensions — Jinja2 2.7-dev documentation. Дата обращения: 27 января 2012. Архивировано из оригинала 30 сентября 2010 года.
  2. Extensions — Jinja2 2.7-dev documentation. Дата обращения: 27 января 2012. Архивировано из оригинала 30 сентября 2010 года.
  3. Colton Myers. Chapter 5. Expanding Our States with Jinja2 and Pillar // Learning SaltStack. — Packt Publishing, 2015. — 174 p. — ISBN 978-1-78439-901-6.

Литература

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

Ссылки