Jinja

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 23 november 2021; kontroller kräver 2 redigeringar .

Jinja (uttalas jinja ) är en mallmotor för programmeringsspråket Python . Den liknar Django -mallmotorn , men tillhandahåller Python-liknande uttryck, vilket gör att mallar kan köras i en sandlåda . Det är en textmallmotor, så den kan användas för att skapa alla typer av markeringar såväl som källkod. Licensierad under BSD-licensen .

Jinjas mallmotor låter dig anpassa taggar [1] , filter, tester och globala variabler [2] . Till skillnad från Django mallmotor låter Jinja också mallkonstruktören anropa funktioner med argument på objekt.

Jinja, liksom Smarty , kommer också med ett lättanvänt filtersystem som liknar Unix-pipeline .

Exempel

Ett enkelt mallexempel:

från jinja import from_string tmpl = from_string ( ''' \ <html> <head><title>{{ variabel|escape }}</title></head> <body> { % för objekt i item_list %} {{ item }}{ % i f not loop.last %},{ % e ndif %} { % e ndfor %} </body> </html>''' ) print ( tmpl . render ( variabel = 'Värde med <osäkra> data' , item_list = [ 1 , 2 , 3 , 4 , 5 , 6 ] ))

Resultat i HTML:

< html > < head >< title > Värde med < osäkra > data </ ​​title ></ head > < body > ett, 2, 3, fyra, 5, 6 </ body > </ html >

Applikation

Förutom webbramverk ( Flask ), används Jinja2 även i exempelvis konfigurationshanteringssystemet SaltStack [3] och Ansible .

Anteckningar

  1. Tillägg - Jinja2 2.7-dev dokumentation (nedlänk) . Hämtad 27 januari 2012. Arkiverad från originalet 30 september 2010. 
  2. Tillägg - Jinja2 2.7-dev dokumentation (nedlänk) . Hämtad 27 januari 2012. Arkiverad från originalet 30 september 2010. 
  3. Colton Myers. Kapitel 5. Expandera våra stater med Jinja2 och Pillar // Lär dig SaltStack. - Packt Publishing, 2015. - 174 sid. - ISBN 978-1-78439-901-6 .

Litteratur

  • Cunningham, K. Python på 24 timmar, Sams Teach Yourself. - Pearson Education, 2013. - 320 sid. — ISBN 9780133354461 .

Länkar