Jinja是否有限制根据格式显示的结果?
例如,如果我有一个包含以下数据的CSV:
Agent ID DOB
152 31/07/1993
175 05/12/1997
使用如下模板设置:
filename = self._Report(self.date, self.time_from, self.time_to)
env = jinja2.Environment()
env.loader = jinja2.FileSystemLoader('templates')
template = env.get_template('testtemplate.html')
rdr = csv.DictReader( open(filename, "r" ) )
csv_data = [ row for row in rdr ]
return template.render( data=csv_data )
这样的模板:
{% for row in data %}
<td>{{ row['Agent ID']] }}</td>
<td>{{ row['DOB']]</td>
{% endfor %}
说我是否只想提供代理商ID 152的数据?
答案 0 :(得分:2)
不要过滤Jinja中的数据。用Python过滤数据:
csv_data = [row for row in rdr if row['Agent ID'] == '152']
仍然会产生一个清单;如果您只期望一个结果,则可以限制CSV数据的读取以找到第一个匹配项:
csv_data = next((row for row in rdr if row['Agent ID'] == '152'), {})
现在生成一个字典,第一行匹配代理ID,如果不存在这样的行,则生成一个空字典。阅读在第一场比赛时停止。