Введение
Это документация для языка шаблонов общего назначения Jinja2. Jinja2 — это библиотека для Python, разработанная для гибкости, скорости и безопасности.
Если у вас есть опыт работы с другими языками шаблонов на основе текста, такими как Smarty или Django, вы должны чувствовать себя комфортно с Jinja2. Он подходит как для дизайнеров, так и для разработчиков, придерживаясь принципов Python и добавляя функциональность, полезную для сред шаблонов.
Предварительные требования
Jinja2 работает с Python 2.6.x, 2.7.x и >= 3.3. Если вы используете Python 3.2, вы можете использовать более старую версию Jinja2 (2.6), так как поддержка Python 3.2 была удалена в версии Jinja2 2.7.
Если вы хотите использовать класс PackageLoader, вам также потребуется setuptools или distribute, установленные во время выполнения.
Установка
У вас есть несколько способов установить Jinja2. Если вы не уверены, что делать, воспользуйтесь Python egg или tarball.
Как Python egg (через easy_install)
Вы можете установить последнюю версию Jinja2, используя easy_install или pip:
easy_install Jinja2 pip install Jinja2
Это установит Jinja2 egg в каталог site-packages вашей установки Python.
Из выпуска tarball
- Загрузите последний tarball со страницы скачивания
- Распакуйте tarball
python setup.py install
Обратите внимание, что вам необходимо установить setuptools или distribute. Последний вариант предпочтительнее.
Это установит Jinja2 в каталог site-packages вашей установки Python.
Установка версии разработки
- Установите git
git clone git://github.com/pallets/jinja.gitcd jinja2ln -s jinja2 /usr/lib/python2.X/site-packages
В качестве альтернативы шагу 4 вы также можете выполнить python setup.py develop, что установит пакет через distribute в режиме разработки. Это также имеет преимущество в том, что C-расширения компилируются.
Зависимость MarkupSafe
Начиная с версии 2.7, Jinja2 зависит от модуля MarkupSafe. Если вы устанавливаете Jinja2 через pip или easy_install, он будет установлен автоматически.
Базовое использование API
Этот раздел предоставляет краткое введение в API Python для шаблонов Jinja2.
Самый простой способ создать шаблон и отобразить его — через Template. Однако это не рекомендуемый способ работы с ним, если ваши шаблоны загружаются не из строк, а из файловой системы или другого источника данных:
>>> from jinja2 import Template
>>> template = Template('Hello {{ name }}!')
>>> template.render(name='John Doe')
u'Hello John Doe!'
Создав экземпляр Template, вы получите новый объект шаблона, который предоставляет метод, называемый render(), который, когда вызывается со словарем или именованными аргументами, расширяет шаблон. Словарь или именованные аргументы, передаваемые в шаблон, — это так называемый «контекст» шаблона.
Здесь можно увидеть, что Jinja2 использует Unicode в своей внутренней работе, а возвращаемое значение — строка Unicode. Поэтому убедитесь, что ваше приложение также использует Unicode в своей внутренней работе.
Экспериментальная поддержка Python 3
Jinja 2.7 обеспечивает экспериментальную поддержку Python >=3.3. Это означает, что все тесты пройдены на новой версии, но все еще могут быть небольшие ошибки и несовместимое поведение. Если вы обнаружите какие-либо ошибки, пожалуйста, оставьте обратную связь в следящей системе ошибок Jinja.
Также помните, что документация написана с учетом Python 2, поэтому вам нужно будет адаптировать представленные примеры кода под синтаксис Python 3 самостоятельно.
© 2007–2020 Pallets
Licensed under the BSD 3-clause License.
https://jinja.palletsprojects.com/en/2.9.x/intro/