Elenco sintassi Jinja.

Esempi

Liste

['valu1', 'value2']

Dizionari

{'key1': 'valueA', 'key2' : 'valueB'}

Iterazione

{% for key, value in _dict.iteritems() %}
Key: {{ key }}
with vakue {{ value }}
{% endfor %}

Test

Note:

Tipo

Mapping

Iterable

Sequence

String

Number

dict

OK

OK

OK

list

OK

OK

string

OK

OK

OK

number

OK

Jinja e saltstack

jinja e saltstack

Debugging

Per testare il rendering e il codice.

via file

Creiamo un file test.txt da provare:

{% set mydata = ['prova', 'test'] %}

Elenco:
{% for word in mydata %}
 - {{ word }}
{% endfor %}
E questo รจ un parametro arbitrario: {{ vario }}

Ora avviamo la shell e proviamo il rendering:

$ python

import jinja2

TEMPLATE_FILE = "/home/user/test.txt"
templateLoader = jinja2.FileSystemLoader( searchpath="/" )
templateEnv = jinja2.Environment( loader=templateLoader )

template = templateEnv.get_template( TEMPLATE_FILE )
templateVars = { "vario": "bogus text" }
print template.render(templateVars)

via CLI

Da terminale python:

>>> from jinja2 import Template
>>> b = Template("""
... {% if interfaces.vlan1 %}
... {{ interfaces.vlan1.ip }}
... {% else %}
... {{ interfaces.vlan2.ip|default("127.0.3.1") }}
... {% endif %}""")
>>> b.render(interfaces={'vlan3':{'ip':'127.0.1.1'},'vlan2':{'ip':'127.0.2.1'}})
u'\n\n127.0.2.1\n'
>>> b.render(interfaces={'vlan1':{'ip':'127.0.1.1'},'vlan2':{'ip':'127.0.2.1'}})
u'\n\n127.0.1.1\n'

MyWiki: Jinja (last edited 2018-01-19 18:02:20 by risca)