jinja README

The project's README from github.com/pallets/jinja. As one markdown file: README.md.

Jinja

Jinja is a fast, expressive, extensible templating engine. Special placeholders in the template allow writing code similar to Python syntax. Then the template is passed data to render the final document.

It includes:

Jinja's philosophy is that while application logic belongs in Python if possible, it shouldn't make the template designer's job difficult by restricting functionality too much.

In A Nutshell

{% extends "base.html" %}
{% block title %}Members{% endblock %}
{% block content %}
  <ul>
  {% for user in users %}
    <li><a href="{{ user.url }}">{{ user.username }}</a></li>
  {% endfor %}
  </ul>
{% endblock %}

Donate

The Pallets organization develops and supports Jinja and other popular packages. In order to grow the community of contributors and users, and allow the maintainers to devote more time to the projects, please donate today.

Contributing

See our detailed contributing documentation for many ways to contribute, including reporting issues, requesting features, asking or answering questions, and making PRs.

jinja (pallets/jinja)

Searching Database…

11.8K ·GitHub
Что это такое?Jinja — быстрый, выразительный и расширяемый движок шаблонов для Python. Вы пишете в шаблоне заполнители, используя синтаксис, похожий на Python, а затем передаёте данные, чтобы получить готовый документ, например HTML.
Это самостоятельное приложение или библиотека, которую я импортирую в код на Python?Это библиотека для Python (устанавливается через pip под именем Jinja2), которую вы импортируете и используете внутри своего приложения. Самостоятельной программой она не является. Её поддерживает организация Pallets, та же команда, что стоит за Flask.
Как мне начать использовать Jinja в проекте?Установите пакет Jinja2, создайте Environment, загрузите шаблон и вызовите render() с вашими данными, чтобы получить готовый документ.
Нужно ли мне что-то дополнительное для перевода шаблонов?Для самой работы с шаблонами ничего, кроме Jinja, не нужно. Но поддержка интернационализации (I18N) опирается на библиотеку Babel.
Безопасно ли из коробки обрабатывать шаблоны, написанные ненадёжными пользователями?Нет, не автоматически. Чтобы безопасно обрабатывать такие шаблоны, нужно намеренно использовать песочницу Jinja. Кроме того, автоэкранирование HTML, которое защищает от XSS, должно быть включено для того контекста, в котором вы работаете.
Кто обычно использует Jinja?Веб-разработчики на Python, которые формируют HTML (в первую очередь приложения на Flask), а также все, кто создаёт текстовые данные из шаблонов с логикой, похожей на Python: конфиги, письма, код.
Могут ли шаблоны использовать общую разметку или повторно используемые фрагменты?Да, Jinja поддерживает наследование и включение шаблонов, а также определение и импорт макросов внутри шаблонов.
Поддерживает ли Jinja асинхронный код на Python?Да, есть поддержка AsyncIO для генерации шаблонов и вызова асинхронных функций.
Насколько Jinja быстрее простого форматирования строк в Python?Шаблоны компилируются в оптимизированный код на Python прямо во время работы и кэшируются, либо могут компилироваться заранее. Именно поэтому Jinja называют очень быстрым движком.
Что происходит, если в шаблоне есть ошибка?Jinja указывает на исключениями нужную строку в самом файле шаблона. Поэтому искать ошибки в шаблонах проще, чем в типичном скомпилированном выводе.
What are similar projects?flask, starlette, click, loguru, moejs, celery, uvloop, reactionview
Creator
pallets
Size
6.8 MB
Stars
11.8K
Age
16y
Commits · 90 Days