Jinja2

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

Jinja2 je moderní programovací šablonovací systém pro programovací jazyk Python. Byl vytvořen Arminem Ronacherem jako vylepšení původního systému Jinja. Jinja2 je navržen tak, aby byl snadno použitelný, flexibilní a bezpečný. Jeho hlavním cílem je oddělení logiky webové aplikace od prezentace dat. Jinja2 podporuje široké spektrum funkcí, jako například kontroly toku, cykly, filtry a dědičnost šablon. Jinja2 se stal populárním nástrojem pro tvorbu dynamických webových stránek a je často používán v kombinaci s frameworky jako Flask nebo Django.

Jinja2 je moderní šablonovací systém pro jazyk Python vycházející ze syntaxe Django. Mezi hlavní výhody patří přehlednost, rozšířitelnost (pomocí filtrů a pluginů), snadnost použití a vysoká rychlost (srovnatelná se šablonovacím systémem Mako). Umožňuje oddělit kód aplikace od její prezentace. Používá kódování Unicode.

Příklady použití

Použití Jinja2 je velmi jednoduché. Pro nahrazování v textových řetězcích můžeme knihovnu vyzkoušet přímo v interaktivním interpretu Pythonu:

>>> from jinja2 import Template >>> template = Template('Hello !') >>> template.render(name='John Doe') u'Hello John Doe!'

Pokud jsou šablony uložené v adresáři, je třeba navíc vytvořit objekt prostředí, z něhož se šablony budou používat:

>>> environment = jinja2. Environment(loader=jinja2. +moreFileSystemLoader("/webova/slozka/templates/")) >>> # kompilace sablon do bytecodu zrychluje jejich pouzivani >>> environment. compile_templates("/webova/slozka/templates_c/", zip=None, py_compile=True) >>> t = environment. get_template("sablona. html") >>> # vyrenderujeme sablonu s predanyma hodnotama >>> t. render(jmeno="Dominik", prijmeni="Opavský").

Podoba souboru sablona.html může být následující:

Vaše jméno je a příjmení je .

Oddělení šablony od kódu

V praxi bývá obvykle šablona oddělena od kódu, jak ukazuje následující jednoduchý příklad generování HTML kódu:

{%- for item in item_list %} {% if not loop.last %},{% endif %} {%- endfor %}

Je-li šablona uložena v souboru example.html.jinja, po zpracování následujícím programem:

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] )

Je výsledkem následující HTML kód:

Value with <unsafe> data

1, 2, 3, 4, 5, 6

Odkazy

Reference

Externí odkazy

[url=http://jinja.pocoo.org/]WWW server Jinja[/url] * [url=http://pypi.python.org/pypi/Jinja2]Jinja2[/url] na Pythonovém webu pypi * [url=https://github.com/mitsuhiko/jinja2]Jinja2 na GitHub[/url]

Kategorie:Software v Pythonu Kategorie:Šablonovací systémy Kategorie:Software pod licencí BSD

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top