Jinja (template engine)
Lua error in package.lua at line 80: module 'strict' not found. Lua error in package.lua at line 80: module 'strict' not found. Jinja is a template engine for the Python programming language and is licensed under a BSD License. It 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 sourcecode.
The Jinja template engine allows customization of tags,[1] filters, tests, and globals.[2] 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.[3]
Contents
Features
Some of the features of Jinja are:[4]
- sandboxed execution
- powerful 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. 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.
Example
Here is a small example of a template file 'example.html.jinja'[5]
<!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>
Sources
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ http://jinja.pocoo.org/docs/dev/3[dead link]
- ↑ Lua error in package.lua at line 80: module 'strict' not found.