Как ввести данные для рендеринга шаблона конфигурации, используя файл вместо предоставления данных в скрипте - PullRequest
0 голосов
/ 07 июня 2019

Как ввести данные для рендеринга шаблона конфигурации, используя файл вместо предоставления данных в скрипте

В настоящее время я использую это, но это означает, что мне нужно прикасаться к сценарию каждый раз, когда я хочу изменить данные:

from jinja2 import Environment, FileSystemLoader
file_loader = FileSystemLoader('.')
from jinja2 import Environment, FileSystemLoader
env = Environment(loader=file_loader)
template = env.get_template('bgp_template.j2')
output = template.render(local_asn='1111', bgp_neighbor='192.168.1.1', remote_asn='2222')
print(output)

Вместо этого я хочу создать новый файл данных (например, bgp_data1.txt, bgp_data2.txt) и обратиться к ним в скрипте

заменить вышеуказанную строку в коде на что-то вроде:

output = template.render(open(bgp_data1.txt))

при следующем запуске:

output = template.render(open(bgp_data2.txt))

и т.д.

Я попытался создать bgp_data1.txt как local_asn='1111', bgp_neighbor='192.168.1.1', remote_asn='2222'

но получил эту ошибку:

$ python jinja_play3.py
Traceback (most recent call last):
  File "jinja_play3.py", line 8, in <module>
    output = template.render(open('bgp_data1.txt'))
  File "/Library/Python/2.7/site-packages/jinja2/environment.py", line 1003, in render
    vars = dict(*args, **kwargs)
ValueError: dictionary update sequence element #0 has length 64; 2 is required
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...