MarketJinja (template engine)
Company Profile

Jinja (template engine)

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.

Features
Some of the features of Jinja are: • 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 ==
Syntax
The syntax for printing output in Jinja is using the double curly braces, for example . 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 . A variable can have multiple filters, for example ). 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 %}). 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 and fields. {% for user in users %} {% endfor %} Although and are not allowed inside loops, sequences can be filtered. == Example ==
Example
Here is a small example of a template file example.html.jinja: {%- for item in item_list %} {% if not loop.last %},{% endif %} {%- endfor %} and templating code: from jinja2 import Template with open("example.html.jinja") as f: tmpl = Template(f.read()) print(tmpl.render( variable = "Value with data", item_list = [1, 2, 3, 4, 5, 6] )) This produces the HTML string: Value with <unsafe> data 1, 2, 3, 4, 5, 6 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. == References ==
tickerdossier.comtickerdossier.substack.com