Введение
Это документация для языка шаблонизации общего назначения 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, вам также потребуется установленный в runtime 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
Этот раздел предоставляет краткое введение в использование Python API для шаблонов 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.10.x/intro/