Jinja2 − silnik szablonów dla języka programowania Python pozwalający na separację logiki aplikacji (Python) od jej warstwy prezentacyjnej (HTML). Oprogramowanie o otwartym kodzie źródłowym, udostępnianym na zasadach licencji BSD. Twórcą rozwiązania jest Armin Ronacher[1] oraz współautorzy. Istnieje również inna implementacja tj. Twig dla języka PHP[2] oraz JavaScript[3].

Cechy szablonów Jinja2:

Zasada działania Jinja2 polega na umieszczaniu w plikach źródłowych (np. z rozszerzeniem .html) znaczników, które następnie są zastępowane generowaną przez aplikację treścią. System umożliwia stosowanie struktur kontrolnych (testów (if), pętli (for), itp.).

Jinja2, podobnie jak Smarty, wyposażony jest w łatwy w użyciu system filtrów podobny w działaniu do potoku w systemach Unix.

Przykład

edytuj

Poniżej przedstawiono przykład kodu źródłowego Pythona 3 z zastosowaniem szablonu Jinja2.

from jinja2 import Template

szablon = Template(u'''\
<!DOCTYPE html>
<html>
  <head>
    <title>{{zmienna|escape }}</title>
  </head>
  <body>
  {% for element in tablica %}
    {{element }}{% if not loop.last %},{% endif %}
  {% endfor %}
  </body>
</html>
''')

print(szablon.render(
    zmienna = 'Wartość ze znacznikiem <unsafe>',
    tablica = [1, 2, 3, 4, 5, 6]
))

Powyższy kod spowoduje wyświetlenie poniższego kodu HTML:

<!DOCTYPE html>
<html>
  <head>
    <title>Wartość ze znacznikiem &lt;unsafe&gt;</title>
  </head>
  <body>
    1,
    2,
    3,
    4,
    5,
    6
  </body>
</html>

Przypisy

edytuj
  1. mitsuhiko – Overview [online], GitHub [dostęp 2020-06-28] (ang.).
  2. Home – Twig – The flexible, fast, and secure PHP template engine [online], twig.symfony.com [dostęp 2020-06-28].
  3. twigjs/twig.js, twig.js, 26 czerwca 2020 [dostęp 2020-06-28].

Linki zewnętrzne

edytuj