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 Jinja2Successfully installed Jinja2-2.11.2 MarkupSafe-1.1.1" %}❗ На сервере, где установлено окружение (напр. python3.7), необходимо добавить опцию --user:
which pip3.7
/usr/local/bin/pip3.7pip3.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.
Links
https://eax.me/python-jinja/Работа с HTML-шаблонами в Python при помощи Jinja
Last updated