jinja2 template + python
Rendering is changing data into something <variable> -------> into "value".
Parsing takes raw data or input and converts it a data structure, or structures that can be analyzed.
Jinja2 - 101 - Intro to Jinja2 template building
Manual: https://media.readthedocs.org/pdf/jinja2/latest/jinja2.pdf
jinja2 module With Python: ( use extensively by Ansible) >>> from jinja2 import Template >>> template = Template('Hello {{ name }}!') >>> template.render(name='John Doe') 'Hello John Doe!' | |
Using template and var file ymlvariablefile = '' jinja2templatefile = '' # the checkargument function, only make sure the arg( file names) have been passed on. ymlvariablefile ,jinja2templatefile = checkargument(argv) #print("yml:", ymlvariablefile ,"\nj2: ",jinja2templatefile) #Load data from YAML into Python dictionary config_data = yaml.load(open(ymlvariablefile)) #Load Jinja2 template from the dirctory called: templates j2_env = Environment(loader = FileSystemLoader('./templates'), trim_blocks=True, lstrip_blocks=True) template = j2_env.get_template(jinja2templatefile) #Render the template with data and print the output print(template.render(config_data)) print("###################################################") print("\tyml:", ymlvariablefile, "\n\tj2: ", jinja2templatefile) print("La FIN") Example using it: https://github.com/dahai0013/Basic-python-with-Juniper/tree/master/Napalm | |