Jinja (silnik szablonów)

Jinja
Oryginalni autorzy Armina Ronachera
Pierwsze wydanie 17 lipca 2008 ; 14 lat temu ( 17.07.2008 )
Wersja stabilna
Edit this on Wikidata 3.1.2 / 28 kwietnia 2022 ; 9 miesięcy temu ( 28 kwietnia 2022 )
Magazyn
Napisane w Pyton
Typ Silnik szablonów
Licencja Licencja BSD
Strona internetowa paletyprojekty.com / p /jinja /  Edit this on Wikidata

Jinja to silnik szablonów internetowych dla języka programowania Python . Został stworzony przez Armina Ronachera i jest dostępny na licencji BSD . Jinja jest podobna do Django , ale zapewnia wyrażenia podobne do Pythona, zapewniając jednocześnie, że szablony są oceniane w piaskownicy . Jest to tekstowy język szablonów, dzięki czemu może być używany do generowania dowolnych znaczników, a także kodu źródłowego.

Silnik szablonów Jinja umożliwia dostosowywanie tagów, filtrów, testów i globali. Ponadto, w przeciwieństwie do silnika szablonów Django, Jinja umożliwia projektantowi szablonów wywoływanie funkcji z argumentami na obiektach. Jinja jest Flask i jest również używany przez Ansible , Trac i Salt .

Cechy

Niektóre cechy Jinji to:

  • wykonanie w piaskownicy
  • automatyczna ucieczka HTML , aby zapobiec atakom typu cross-site scripting (XSS).
  • dziedziczenie szablonu
  • kompiluje się do optymalnego kodu Pythona just-in-time
  • opcjonalna kompilacja szablonów z wyprzedzeniem
  • łatwe do debugowania (na przykład numery linii wyjątków bezpośrednio wskazują właściwą linię w szablonie)
  • konfigurowalna składnia

Jinja, podobnie jak Smarty , jest również dostarczana z łatwym w użyciu systemem filtrów, podobnym do potoku Unix .

Przykład

Oto mały przykład pliku szablonu example.html.jinja :



  
      
  
  
      
             <!DOCTYPE html>  <  html  >  <  nagłówek  >  <  tytuł  >  {{  zmienna  |  escape  }}  </  title  >  </  head  >  <  body  >  {%  -  dla  elementu  w  item_list  %}  {{  item  }}{%  if  not  loop  .last  %}  ,  {%  endif  %} 
   
  
 {%  -  endfor  %}  </  body  >  </  html  > 

i kod szablonu:

   
   
      

      
           from  jinja2  import  Template  with  open  (  'example.html.jinja'  )  as  f  :  tmpl  =  Template  (  f  .  read  ())  print  (  tmpl  .  render  (  zmienna  =  'Wartość z <niebezpiecznymi> danymi'  ,  item_list  =  [  1  ,  2  ,  3  ,  4  ,  5  ,  
 6  ]  )) 

Spowoduje to utworzenie ciągu HTML:



  
    
  
  
 <!DOCTYPE html>  <  html  >  <  head  >  <  title  >  Wartość z  &lt;  niebezpieczne  &gt;  dane  </  tytuł  >  </  głowa  >  <  treść  >  1, 2, 3, 4, 5, 6  </  treść  >  </  html  > 

Źródła

Linki zewnętrzne