To install click the Add extension button. That's it.

The source code for the WIKI 2 extension is being checked by specialists of the Mozilla Foundation, Google, and Apple. You could also do it yourself at any point in time.

4,5
Kelly Slayton
Congratulations on this excellent venture… what a great idea!
Alexander Grigorievskiy
I use WIKI 2 every day and almost forgot how the original Wikipedia looks like.
Live Statistics
English Articles
Improved in 24 Hours
Added in 24 Hours
What we do. Every page goes through several hundred of perfecting techniques; in live mode. Quite the same Wikipedia. Just better.
.
Leo
Newton
Brights
Milds

Jinja (template engine)

From Wikipedia, the free encyclopedia

Jinja
Original author(s)Armin Ronacher
Initial releaseJuly 17, 2008; 15 years ago (2008-07-17)[1]
Stable release
3.1.3[2] Edit this on Wikidata / 10 January 2024; 2 months ago (10 January 2024)
Repository
Written inPython
TypeTemplate engine
LicenseBSD License
Websitepalletsprojects.com/p/jinja/ Edit this on Wikidata

Jinja is a web template engine for the Python programming language. It was created by Armin Ronacher and is licensed under a BSD License. Jinja is similar to the Django template engine but provides Python-like expressions while ensuring that the templates are evaluated in a sandbox. It is a text-based template language and thus can be used to generate any markup as well as source code.

The Jinja template engine allows customization of tags,[3] filters (for formatting or transforming values[4]), tests (for evaluating conditions[4]), and globals.[5] Also, unlike the Django template engine, Jinja allows the template designer to call functions with arguments on objects. Jinja is Flask's default template engine [6] and it is also used by Ansible,[7] Trac, and Salt.[8] It is also used to make SQL macros, for example for use with dbt.[9]

YouTube Encyclopedic

  • 1/3
    Views:
    34 313
    7 130
    14 834
  • Understanding Jinja2 Template Engine In Flask Web Framework
  • Jinja Python - Fast Expressive Templating Engine - Advent of code Jinja2
  • Python Jinja - Learn how to extends html files in jinja template engine

Transcription

Features

Some of the features of Jinja are:[10]

  • sandboxed execution
  • automatic HTML escaping to prevent cross-site scripting (XSS) attacks
  • template inheritance
  • compiles down to the optimal Python code just-in-time
  • optional ahead-of-time template compilation
  • easy to debug (for example, line numbers of exceptions directly point to the correct line in the template)
  • configurable syntax

Jinja, like Smarty, also ships with an easy-to-use filter system similar to the Unix pipeline.

Syntax

The syntax for printing output in Jinja is using the double curly braces, for example {{ Hello, World! }}.

Statements which set variables in jinja or those which do not have an output can be wrapped within {% and %}, using the set keyword. For example {% set foo = 42 %} sets a variable called foo with a value of 42.

Similar to above, comments in jinja can be written using a number sign (#) instead of a percentage (%), for example, {# helpful comment #}.

The syntax for creating a filter in Jinja is a vertical bar (|), for example {{ variable|filter }}. A variable can have multiple filters, for example {{ variable|filter|filter }}).[4]

The syntax for creating a test in Jinja is the keyword is as well as the conditions for evaluating the validity of a test, such as for example {% if variable is divisibleby 10 %}do something{% endif %}).[4]

For loops can be used to iterate over sequences, while retaining their object properties. The following example demonstrates iterating over a list of users with username and password fields.

{% for user in users %}
    {{ user.username }}
    {{ user.password }}
{% endfor %}

Although break and continue are not allowed inside loops, sequences can be filtered.

Example

Here is a small example of a template file example.html.jinja:[11]

<!DOCTYPE html>
<html>
  <head>
    <title>{{ variable|escape }}</title>
  </head>
  <body>
  {%- for item in item_list %}
    {{ item }}{% if not loop.last %},{% endif %}
  {%- endfor %}
  </body>
</html>

and templating code:

from jinja2 import Template
with open('example.html.jinja') as f:
    tmpl = Template(f.read())
print(tmpl.render(
    variable = 'Value with <unsafe> data',
    item_list = [1, 2, 3, 4, 5, 6]
))

This produces the HTML string:

<!DOCTYPE html>
<html>
  <head>
    <title>Value with <unsafe> data</title>
  </head>
  <body>
    1,
    2,
    3,
    4,
    5,
    6
  </body>
</html>

Note the minus sign (-) after the tag {%: If you add a minus sign (-) to the start or end of a block (e.g. a For tag), a comment, or a variable expression, the whitespaces before or after that block will be removed.[12]

References

  1. ^ "Jinja2 Release History". Retrieved 24 June 2020.
  2. ^ "Release 3.1.3". 10 January 2024. Retrieved 19 January 2024.
  3. ^ "Extensions". Jinja2 Documentation (2.8-dev). Retrieved 2015-05-26.
  4. ^ a b c d "Jinja built-in filters and tests (like Django filters)". www.webforefront.com. Retrieved 2023-08-14.
  5. ^ "Extensions". Jinja2 Documentation (2.8-dev). Retrieved 2015-05-26.
  6. ^ DuPlain, R. (2013). Instant Flask Web Development. Packt Publishing. p. 30. ISBN 978-1-78216-963-5. Retrieved 2015-05-26.
  7. ^ "Templating (Jinja2) — Ansible Documentation".
  8. ^ "Understanding Jinja". docs.saltproject.io.
  9. ^ Jinja and macros | dbt Developer Hub
  10. ^ "Welcome | Jinja2 (The Python Template Engine)". palletsprojects.com/p/jinja.
  11. ^ Ronacher, Armin. "Template Designer Documentation". Jinja Documentation (3.0.x). Retrieved 9 January 2024. A Jinja template doesn't need to have a specific extension: .html, .xml, or any other extension is just fine.
  12. ^ "Template Designer Documentation — Jinja Documentation (3.0.x)". jinja.palletsprojects.com. Retrieved 2024-01-09.

External links

This page was last edited on 17 March 2024, at 00:33
Basis of this page is in Wikipedia. Text is available under the CC BY-SA 3.0 Unported License. Non-text media are available under their specified licenses. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc. WIKI 2 is an independent company and has no affiliation with Wikimedia Foundation.