Jinja (шаблонизатор) - Jinja (template engine)
Эта статья может чрезмерно полагаться на источники слишком тесно связан с предметом, потенциально препятствуя публикации статьи проверяемый и нейтральный.Январь 2020) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
Оригинальный автор (ы) | Армин Ронахер |
---|---|
изначальный выпуск | 17 июля 2008 г.[1] |
Стабильный выпуск | 2.11.2 / 13 апреля 2020 г.[1] |
Репозиторий | |
Написано в | Python |
Тип | Шаблонизатор |
Лицензия | Лицензия BSD |
Интернет сайт | поддоныпроекты |
Джиндзя это движок веб-шаблонов для Язык программирования Python. Он был создан Армин Ронахер и под лицензией Лицензия BSD. Jinja похож на Джанго механизм шаблонов, но предоставляет выражения, подобные Python, при этом гарантируя, что шаблоны оцениваются в песочница. Это текстовый язык шаблонов, поэтому его можно использовать для создания любой разметки, а также исходного кода.
Механизм шаблонов Jinja позволяет настраивать теги,[2] фильтры, тесты и глобальные переменные.[3] Кроме того, в отличие от шаблонизатора Django, Jinja позволяет конструктору шаблонов вызывать функции с аргументами для объектов. Колба шаблонизатор по умолчанию [4] и он также используется Ansible [5] и Trac.
Функции
Некоторые особенности Jinja:[6]
- исполнение в песочнице
- автоматический HTML-экранирование предотвращать межсайтовый скриптинг (XSS) атаки
- наследование шаблона
- компилируется до оптимального кода Python точно в срок
- необязательная предварительная компиляция шаблона
- легко отлаживать (например, номера строк исключений напрямую указывают на правильную строку в шаблоне)
- настраиваемый синтаксис
Джиндзя, как Умный, также поставляется с простой в использовании системой фильтрации, аналогичной Unix трубопровод.
Пример
Вот небольшой пример файла шаблона example.html.jinja
:[7]
<!DOCTYPE html><html> <голова> <заглавие>{{ Переменная|побег }}</заглавие> </голова> <тело> {%- за элемент в item_list %} {{ элемент }}{% если нет петля.последний %},{% endif %} {%- конец %} </тело></html>
и код шаблона:
из jinja2 импорт Шаблонс открыто('example.html.jinja') в качестве ж: tmpl = Шаблон(ж.читать())Распечатать(tmpl.оказывать( Переменная = 'Значение с данными <небезопасные>', item_list = [1, 2, 3, 4, 5, 6]))
Это создает строку HTML:
<!DOCTYPE html><html> <голова> <заглавие>Ценность с & lt;небезопасно& gt; данные</заглавие> </голова> <тело> 1, 2, 3, 4, 5, 6 </тело></html>
Источники
- ^ а б "История выпуска Jinja2". Получено 24 июн 2020.
- ^ «Расширения». Документация Jinja2 (2.8-dev). Получено 2015-05-26.
- ^ «Расширения». Документация Jinja2 (2.8-dev). Получено 2015-05-26.
- ^ ДюПлен, Р. (2013). Веб-разработка Instant Flask. Packt Publishing. п. 30. ISBN 978-1-78216-963-5. Получено 2015-05-26.
- ^ https://docs.ansible.com/ansible/latest/user_guide/playbooks_templating.html
- ^ "Добро пожаловать | Jinja2 (шаблонизатор Python)". palletsprojects.com/p/jinja.
- ^ Ронахер, Армин. "Документация по шаблону". Документация Jinja2. Получено 7 января 2016.
Шаблон Jinja не обязательно должен иметь конкретное расширение: вполне подойдет .html, .xml или любое другое расширение.
внешняя ссылка
- Сайт Jinja
- Jinja2 на Python pypi
- jinja2 на GitHub