Jinja2
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:
- Pełne wsparcie dla Unicode.
- Automatyczne przeciwdziałanie XSS w znacznikach modyfikacji HTML.
- Możliwość wykonywania kodu w piaskownicy.
- Możliwość tworzenia własnych znaczników, filtrów, testów i zmiennych globalnych.
- Dziedziczenie szablonów.
- Łatwe do debugowania.
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
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 <unsafe></title> </head> <body> 1, 2, 3, 4, 5, 6 </body> </html>
Przypisy
Linki zewnętrzne
- Oficjalna witryna projektu Jinja2 (ang.)