Введение
Это документация для языка шаблонизации общего назначения Jinja. Jinja — это библиотека для Python, разработанная для гибкости, скорости и безопасности.
Если вы знакомы с другими языками шаблонизации на основе текста, такими как Smarty или Django, вам будет легко освоить Jinja. Он дружелюбен как для дизайнеров, так и для разработчиков, следуя принципам Python и добавляя функциональность, полезную для сред шаблонизации.
Предварительные требования
Jinja работает с Python 2.7.x и >= 3.5. Если вы используете Python 3.2, вы можете использовать более старую версию Jinja (2.6), так как поддержка Python 3.2 была удалена в версии Jinja 2.7. Последняя версия, поддерживавшая Python 2.6 и 3.3, была Jinja 2.10.
Если вы хотите использовать класс PackageLoader, вам также потребуется setuptools или distribute, установленные во время выполнения.
Установка
Вы можете установить последнюю версию Jinja с помощью pip:
pip install Jinja2
Это установит Jinja в каталог 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, Jinja зависит от модуля MarkupSafe. Если вы устанавливаете Jinja через pip, он будет установлен автоматически для вас.
Базовое использование API
Этот раздел предоставляет краткое введение в использование API Python для шаблонов Jinja.
Самый простой способ создать шаблон и отобразить его — через Template. Однако это не рекомендуемый способ работы, если ваши шаблоны загружаются не из строк, а из файловой системы или другого источника данных:
>>> from jinja2 import Template
>>> template = Template('Hello {{ name }}!')
>>> template.render(name='John Doe')
u'Hello John Doe!'
Создав экземпляр Template, вы получите новый объект шаблона, предоставляющий метод render(), который, когда вызывается со словарем или ключевыми аргументами, расширяет шаблон. Словарь или ключевые аргументы, передаваемые шаблону, являются так называемым «контекстом» шаблона.
Из этого видно, что Jinja использует внутренне Unicode, а возвращаемое значение — строка Unicode. Поэтому убедитесь, что ваше приложение действительно использует Unicode внутри.
© 2007–2020 Pallets
Licensed under the BSD 3-clause License.
https://jinja.palletsprojects.com/en/2.11.x/intro/