Jinja

Простой пример cgi-скрипта подключающего шаблон Jinja

Довжина списку словників, та обробка його обробка:

{% if EQU_TYPES_LIST|length > 0 %}
{%- for dict in EQU_TYPES_LIST %}
<div class="col py-3">
	<h5 class="card-title">{{ dict.typ_mark }}</h5>
	<p>{{ dict.typ_name }}</p>
</div>
{% endfor -%}

Install

pip3 install Jinja2
Successfully installed Jinja2-2.11.2 MarkupSafe-1.1.1" %}

На сервере, где установлено окружение (напр. python3.7), необходимо добавить опцию --user:

which pip3.7
/usr/local/bin/pip3.7
pip3.7 install Jinja2"
Could not install packages due to an EnvironmentError: [Errno 13] Permission denied...
Consider using the `--user` option or check the permissions." %}
pip3.7 install --user Jinja2"

⚠️ Экспериментальная поддержка Python 3 :nbsp: Jinja 2.7 обеспечивает экспериментальную поддержку Python >= 3.3. Это означает, что все unittests передают новую версию, но там могут быть небольшие ошибки, и поведение может быть непоследовательным. Если вы заметили какие-либо ошибки, сообщите об этом в трекер Jinja.

Почему Jinja2?

http://python2or3.blogspot.com/2015/08/python.html

Если по вопросу "с какого фреймворка начинать в Питоне" еще есть плюрализм (от "Flask - он легковесный, наращиваешь сам и понимаешь как все работает" до "Django - в нем все есть, а чего нет, быстро доустанавливаешь"), то с шаблонизаторами все упростилось.

До недавнего времени шаблонизаторов было 3-4: Jinja, Mako, Genshi и, конечно, Django Templates.

Собственно, они никуда не делись, Genshi и сейчас используется по умолчанию в Turbogears 2, а Mako - в Pylons/Pyramid.

Но и Turbogears, и Django и Pyramid с недавнего времени поддерживают шаблонизатор, ставший популярным благодаря Flask - Jinja 2.

Ну и, наконец, посмтрим на подборку генераторов статических сайтов (http://www.staticgen.com/): 11 из 17, в том числе самый популярный Pelican (http://docs.getpelican.com/) опираются на Jinja2.

Итого - вопрос с выбором шаблонизатора Python на сегодня не стоит.

Пример использования Jinja2

https://lectureswww.readthedocs.io/6.www.sync/2.codding/3.templates/jinja2.html

Hello name!

Hello Вася!

Комментарии

Операторы

См.также https://ru.wikipedia.org/wiki/Оператор_(программирование)

Hello Вася! Hello Вася! Hello Вася! Hello Вася! Hello Вася!

Модули

foo фуу föö

Макросы

23 42

Чтение из файла

jinja2/3.loader/0.file.py — чтение шаблона из файла

Результат рендеринга шаблона jinja2/3.loader/foopkg/templates/0.hello.html

Окружение (Environment)

См.также

http://jinja.pocoo.org/docs/dev/api/#loaders

http://jinja.pocoo.org/docs/dev/api/#jinja2.Environment

Настройки

Загрузчики шаблонов (Loaders)

FileSystemLoader

Результат рендеринга шаблона jinja2/3.loader/foopkg/templates/0.hello.html

PackageLoader

Результат рендеринга шаблона jinja2/3.loader/foopkg/templates/0.hello.html

DictLoader

Результат рендеринга шаблона jinja2/3.loader/foopkg/templates/0.hello.html

FunctionLoader

Результат рендеринга шаблона jinja2/3.loader/foopkg/templates/0.hello.html

PrefixLoader

Результат рендеринга шаблона jinja2/3.loader/foopkg/templates/0.hello.html

ChoiceLoader

Результат рендеринга шаблона jinja2/3.loader/foopkg/templates/0.hello.html

ModuleLoader

Результат рендеринга шаблона jinja2/3.loader/foopkg/templates/0.hello.html

BaseLoader

Результат рендеринга шаблона jinja2/3.loader/foopkg/templates/0.hello.html

Шаблон конфига Nginx

Блог

templates/base.html — базовый шаблон.

Главная страница templates/index.html наследуется от templates/base.html

templates/create.html наследуется от базового шаблона.

templates/read.html наследуется от базового шаблона.

views.py — окружение Jinja2.

Last updated