60 lines
1.9 KiB
Markdown
60 lines
1.9 KiB
Markdown
<div align="center"><img src="https://raw.githubusercontent.com/pallets/jinja/refs/heads/stable/docs/_static/jinja-name.svg" alt="" height="150"></div>
|
|
|
|
# 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:
|
|
|
|
- Template inheritance and inclusion.
|
|
- Define and import macros within templates.
|
|
- HTML templates can use autoescaping to prevent XSS from untrusted
|
|
user input.
|
|
- A sandboxed environment can safely render untrusted templates.
|
|
- AsyncIO support for generating templates and calling async
|
|
functions.
|
|
- I18N support with Babel.
|
|
- Templates are compiled to optimized Python code just-in-time and
|
|
cached, or can be compiled ahead-of-time.
|
|
- Exceptions point to the correct line in templates to make debugging
|
|
easier.
|
|
- Extensible filters, tests, functions, and even syntax.
|
|
|
|
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
|
|
|
|
```jinja
|
|
{% 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][].
|
|
|
|
[please donate today]: https://palletsprojects.com/donate
|
|
|
|
## Contributing
|
|
|
|
See our [detailed contributing documentation][contrib] for many ways to
|
|
contribute, including reporting issues, requesting features, asking or answering
|
|
questions, and making PRs.
|
|
|
|
[contrib]: https://palletsprojects.com/contributing/
|