Jinja2
Vzhled
| Vývojář | Pocoo |
|---|---|
| Aktuální verze | 3.1.6 (5. března 2025) |
| Vyvíjeno v | Python |
| Typ softwaru | knihovna, šablonovací systém, svobodný software, knihovna Pythonu a template language |
| Licence | BSD licence |
| Web | jinja.pocoo.org |
| Některá data mohou pocházet z datové položky. | |
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í
[editovat | editovat zdroj]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 {{ name }}!')
>>> 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.FileSystemLoader("/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 {{jmeno}} a příjmení je {{prijmeni}}.
Oddělení šablony od kódu
[editovat | editovat zdroj]V praxi bývá obvykle šablona oddělena od kódu, jak ukazuje následující jednoduchý příklad generování HTML kódu: