Jinja2

Jinja2
VývojářPocoo
Aktuální verze3.1.4 (5. května 2024)
Vyvíjeno vPython
Typ softwaruknihovna, šablonovací systém, svobodný software, knihovna Pythonu a template language
LicenceBSD licence
Webjinja.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í

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

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

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

Je-li šablona uložena v souboru example.html.jinja[1], 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 <unsafe> data',
    item_list = [1, 2, 3, 4, 5, 6]
)

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

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

Odkazy

Reference

V tomto článku byl použit překlad textu z článku Jinja (template engine) na anglické Wikipedii.

  1. RONACHER, Armin. Template Designer Documentation [online]. [cit. 2016-01-07]. Jinja šablony mohou mít libovolnou příponu, např. .html, .xml.. Dostupné v archivu pořízeném dne 2016-11-13. 

Externí odkazy


Zdroj datcs.wikipedia.org
Originálcs.wikipedia.org/wiki/Jinja2
Zobrazit sloupec 

Kalkulačka - Výpočet

Výpočet čisté mzdy

Důchodová kalkulačka

Přídavky na dítě

Příspěvek na bydlení

Rodičovský příspěvek

Životní minimum

Hypoteční kalkulačka

Povinné ručení

Banky a Bankomaty

Úrokové sazby, Hypotéky

Směnárny - Euro, Dolar

Práce - Volná místa

Úřad práce, Mzda, Platy

Dávky a příspěvky

Nemocenská, Porodné

Podpora v nezaměstnanosti

Důchody

Investice

Burza - ČEZ

Dluhopisy, Podílové fondy

Ekonomika - HDP, Mzdy

Kryptoměny - Bitcoin, Ethereum

Drahé kovy

Zlato, Investiční zlato, Stříbro

Ropa - PHM, Benzín, Nafta, Nafta v Evropě

Podnikání

Města a obce, PSČ

Katastr nemovitostí

Katastrální úřady

Ochranné známky

Občanský zákoník

Zákoník práce

Stavební zákon

Daně, formuláře

Další odkazy

Auto - Cena, Spolehlivost

Registr vozidel - Technický průkaz, eTechničák

Finanční katalog

Volby, Mapa webu

English version

Czech currency

Prague stock exchange


Ochrana dat, Cookies

 

Copyright © 2000 - 2024

Kurzy.cz, spol. s r.o., AliaWeb, spol. s r.o.