Jinja (pronunciado jinja ) es un motor de plantillas para el lenguaje de programación Python . Es similar al motor de plantillas de Django , pero proporciona expresiones similares a las de Python, lo que permite que las plantillas se ejecuten en un espacio aislado . Es un motor de plantillas de texto, por lo que se puede utilizar para crear cualquier tipo de marcado, así como código fuente. Licenciado bajo la licencia BSD .
El motor de plantillas de Jinja le permite personalizar etiquetas [1] , filtros, pruebas y variables globales [2] . Además, a diferencia del motor de plantillas de Django, Jinja permite que el constructor de plantillas llame a funciones con argumentos sobre objetos.
Jinja, al igual que Smarty , también viene con un sistema de filtrado fácil de usar similar al pipeline de Unix .
Un ejemplo de plantilla simple:
de jinja importar from_string tmpl = from_string ( ''' \ <html> <head><title>{{ variable|escape }}</title></head> <body> { % for item in item_list %} {{ item }}{ % i f not loop.last %},{ % e ndif %} { % e ndfor %} </body> </html>''' ) print ( tmpl . render ( variable = 'Valor con datos <inseguros>' , item_list = [ 1 , 2 , 3 , 4 , 5 , 6 ] ))Resultado en HTML:
< html > < encabezado >< título > Valor con < inseguro > datos </ título ></ cabeza > < cuerpo > una, 2, 3, cuatro, 5, 6 </ cuerpo > </ html >Además de los frameworks web ( Flask ), Jinja2 también se utiliza, por ejemplo, en el sistema de gestión de configuración SaltStack [3] y Ansible .