我正在尝试使用jinja2构建配置文件。 我在csv中有一堆数据,我想用于jinja2模板。
我可以打开并阅读csv文件,但不知道如何让jinja2从CSV读取数据并将其添加到模板的变量中。 这是我配置的开始:
import jinja2
import csv
with open('dhcpd.csv', 'rb') as csvfile:
build = csv.reader(csvfile)
env = jinja2.Environment(loader=jinja2.FileSystemLoader('/templates'))
template = env.get_template('dhcpd-build')
我知道我是一个公平的道路,但任何帮助都会很棒
答案 0 :(得分:1)
这里的过程是
您在Python代码中加载数据 - 正如您所做的那样 - Python import csv to list
您可以使用render()
方法将数据传递给Jinja 2模板。 http://jinja.pocoo.org/docs/dev/api/#jinja2.Template.render
示例:
data = list(data)
result = template.render(data=data)
然后您可以在模板中迭代数据:
{% for row in data %}
{{ row }}
{% endfor %}
代码在现实生活中未经过测试,我写下了我的脑袋。
答案 1 :(得分:0)
代码现在看起来像
import jinja2
import csv
with open('dhcpd.csv', 'rb') as infile:
reader = csv.reader(infile)
build = list(reader)
env = jinja2.Environment(loader=jinja2.FileSystemLoader('/Users/Luca/Git/ztp/templates'))
template = env.get_template('dhcpd-build')
for data in build:
print template.render(data=build)
它呈现模板,但没有来自我的csv文件的任何变量