| Introduction | |
| ============ | |
| 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. | |
| Installation | |
| ------------ | |
| We recommend using the latest version of Python. Jinja supports Python | |
| 3.6 and newer. We also recommend using a `virtual environment`_ in order | |
| to isolate your project dependencies from other projects and the system. | |
| .. _virtual environment: https://packaging.python.org/tutorials/installing-packages/#creating-virtual-environments | |
| Install the most recent Jinja version using pip: | |
| .. code-block:: text | |
| $ pip install Jinja2 | |
| Dependencies | |
| ~~~~~~~~~~~~ | |
| These will be installed automatically when installing Jinja. | |
| - `MarkupSafe`_ escapes untrusted input when rendering templates to | |
| avoid injection attacks. | |
| .. _MarkupSafe: https://markupsafe.palletsprojects.com/ | |
| Optional Dependencies | |
| ~~~~~~~~~~~~~~~~~~~~~ | |
| These distributions will not be installed automatically. | |
| - `Babel`_ provides translation support in templates. | |
| .. _Babel: http://babel.pocoo.org/ |