我一直在为我正在处理的应用程序动态创建一个事件表。我正在尝试使用Jinja2模板逻辑动态填充行。我正在使用flask作为路由,而pure.css用于基本的css。
我的数据组织如下:
event_data{ device_name:[ {'summary':"", ... 'severity'},
{'summary':"", ... 'severity'},
.
.
. ]
device_name:[ ... ] }
我的模板代码:
<div style="overflow:auto; height:150px; width:auto; border:1px solid; margin:20px;">
<table class="pure-table">
<thead>
<tr>
<th>Name</th>
<th style="width:30%;">Summary</th>
<th>Last Seen</th>
<th>First Seen</th>
<th>Device Priority</th>
<th>Event Class</th>
<th>Production State</th>
<th>Severity</th>
</tr>
</thead>
<tbody>
{% for device in event_data %}
{% for event in event_data[device]%}
<tr>
<td>hello</td>
<td>{{ event['summary'] }}</td>
<td>{{ event['lastTime'] }}</td>
<td>{{ event['firstTime'] }}</td>
<td>{{ event['DevicePriority'] }}</td>
<td>{{ event['eventClass'] }}</td>
<td>{{ event['prodState'] }}</td>
<td>{{ event['severity'] }}</td>
</tr>
{%endfor%}
{% endfor %}
</tbody>
</table>
</div>
我通过Flask的这个电话获取信息到我的页面:
return render_template('app_page.html', event_data=json.dumps(event_data), device_names=devices)
我测试了等效的python循环,它完美地打印了信息。当我像这样运行它甚至不进入内部循环,因此它不会使任何新行超过标题行。非常欢迎任何建议或意见!
答案 0 :(得分:0)
将某些内容转储到JSON会产生一个字符串。你不想要一个字符串,你想要你开始的字典。你没有做任何需要JSON的事情。只需传递没有json.dumps
的字典。