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 .
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 >Förutom webbramverk ( Flask ), används Jinja2 även i exempelvis konfigurationshanteringssystemet SaltStack [3] och Ansible .