对django来说有点陌生,我正在运行python scrip来获取数据,并且喜欢在HTML表标记中显示。Python脚本工作并收集以下数据:
[{'Device': 'device01', 'Port': 'ETH1/5', 'Provider': 'L3', 'ID': 1111, 'Remote': 'ISPCircuit', 'Destination Port': 'ISPPort'}, {'Device': 'device02', 'Port': 'ETH1/5', 'Provider': 'L3', 'ID': 2222, 'Remote': 'ISPCircuit', 'Destination Port': 'ISPPort'}]
当在视图.py,我将输出存储在以下位置:
if form.is_valid():
## Python script GatherData file
output = gatherdata(location)
data = QueryDict(output, mutable=True)
## Dict format to fetch
context = {'location': location, 'data': data }
使用QueryDict
的原因是python的输出作为data
添加了字符串,例如:
{'location': 'DC1', 'data': b"[{'Device': ... '}]\n"}
无法从data
获取数据
以下是使用QueryDict的输出,如下所示:
<QueryDict: {"[{'Device': 'device01', 'Port': 'ETH1/5', 'Provider': 'L3', 'ID': 1111, 'Remote': 'ISPCircuit', 'Destination Port': 'ISPPort'}, {'Device': 'device02', 'Port': 'ETH1/5', 'Provider': 'L3', 'ID': 2222, 'Remote': 'ISPCircuit', 'Destination Port': 'ISPPort'}]\n": ['']}>
上面解释了如何将给定数据中的值解析为html模板
以上,谢谢您的意见和建议。你知道吗
我试过了,json.loads文件(输出)但通过错误。我试过data = literal_eval(context['data'])
删除字符串。你知道吗
我已经更新了下面的建议,为了通过HTML呈现,我已经累了,但是没有得到任何数据
<tbody>
{% for i in qd %}
<tr class='clickable-row' data-href='/details/'>
{% if i == "Device" %}
{% for v in qd.i %}
<td>{{ v }}</td>
{% endfor %}
</tr>
{% endif %}
{% endfor %}
</tbody>
我能够获取数据,并能够通过html呈现显示。不必使用
qd = QueryDict(mutable=True)
,只需使用response = response.decode()
即可解决问题。至于html,我们能够使用FOR循环.items()
来获取数据。谢谢大家的意见。你知道吗这是Python对象的表示。您可以使用
ast.literal_eval(..)
将其转换为其Python等价物,然后通过迭代列表来更新QueryDict
。比如:如果
response
是bytes
,则可以首先将其解码为字符串:最后,我们得到以下
QueryDict
:但是你可能不想把它转换成
QueryDict
。这只是一个词典列表。每个字典都包含一个'Device'
、'Port'
、Provider'
和ID
键。因此,您可能只需要使用for
循环来处理字典。你知道吗相关问题 更多 >
编程相关推荐