元のリンク:http : //networkbit.ch/python-jinja-template/
template.txtは次のとおりです。
ホスト名{{name}} インターフェースLoopback1 IPアドレス10.1。1。{{id}} 255.255。255.255 {%用の VLAN、名前で vlans.items()%} VLAN {{}} VLAN 名{{名前}} {%ENDFOR - %} ルータBGP {{ID}} {% ためのネイバーで BGP%} 隣接{リモート{neighbor.neighbor} - として {{neighbor.remote- として}} {%ENDFOR%}
data.yml 如下:
名前:R1 id:1 vlans: 11 :ユーザー 22 :音声 33 :ビデオ bgp: -ネイバー:10.1。1.1 リモート - のように:1 -隣人:10.1。2.2 リモート - のように:2 -隣人:10.1。3.3 遠隔 - として:3
Pythonスクリプトを作成:
#Imports からJinja2の からJinja2のインポート環境、FileSystemLoader #IMPORT YAML からPyYAMLと インポートYAML #LoadデータからPythonの辞書にYAMLファイル 設定 = yaml.load((オープン' ./data.yml ' )) #Load Jinja2のテンプレート ENV =環境(ローダ= FileSystemLoader(' ./ ')、trim_blocks =真、lstrip_blocks = TRUE) 鋳型 = env.get_template(' template.txt ' ) #Renderテンプレート用いてデータを出力する印刷 print(template.render(config))