如何在django中将python字典动态输出到html?
Posted
技术标签:
【中文标题】如何在django中将python字典动态输出到html?【英文标题】:How to dynamically output python dictionary to html in django? 【发布时间】:2018-08-08 17:15:20 【问题描述】:这是我从套接字动态获取的数据,我想用 django 将其显示在一个表格中,例如 html 中的键和值。
Received:
'power': 'ON', 'mode': 'AUTOMATIC', 'execution': 'ACTIVE', 'Xact': '235.70', 'Yact': '1468.86', 'Zact': '1.27', 'Xcom': '0.00', 'Ycom': '0.00', 'Zcom': '0.00', 'path_feedrate': '0.00', 'line': '1136849', 'Block': '1136849', 'program': '37262 S1 - .75 JET_imported_CNC.ORD\n'
'comms': 'NORMAL', '': '\n2018-08-08T17:11:51.0384', 'Sspeed': '60000.00\n'
'line': '1136860', 'Block': '1136860\n'
'Xact': '236.17', 'Xcom': '909.70', 'path_feedrate': '909.70\n'
'Xcom': '0.00', 'path_feedrate': '0.00', 'line': '1136872', 'Block': '1136872\n'
'line': '1136883', 'Block': '1136883\n'
'line': '1136895', 'Block': '1136895\n'
'line': '1136906', 'Block': '1136906\n'
'Xact': '236.52', 'Xcom': '677.44', 'path_feedrate': '677.44\n'
'Xcom': '0.00', 'path_feedrate': '0.00', 'line': '1136918', 'Block': '1136918\n'
'line': '1136929', 'Block': '1136929\n'
'line': '1136941', 'Block': '1136941\n'
还有更多输出.....
我试过用这个,但是没用。
% block content %
<table>
% for key, value in devDict.items() %
<tr>
<td> key </td>
<td> value </td>
</tr>
% endfor %
</table>
% endblock content %
% block js %
<script type="text/python3" src="% static 'widgets/python/mtconnect.py'%"></script>
% endblock js %
这是我的 python 脚本,这就是我获取数据的方式:
import socket
HOST = "myHOST"
PORT = myPORT
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect((HOST, PORT))
buffer_size = 2048
print("Received: ")
while True:
devData = s.recv(buffer_size).decode("utf-8").split("|")
timeStamp = devData.pop(0)
devDict = dict(zip(*([iter(devData)]*2)))
print(devDict)
s.close()
【问题讨论】:
你尝试过的结果是什么? 当我尝试使用 django 进行循环时没有输出。但是当我只是运行我的 python 代码时,它会给我上面的输出.items()
是正确的。不是.items
.items() 不正确,因为我收到此错误:无法解析余数:'()' from 'devDict.items()'
如果你正在加载一个网页,那么任何可用的数据都应该打印到表格中,然后静态渲染并传递给客户端。如果数据在两次之间发生变化,则页面不会在没有处理实时变化的额外代码的情况下发生变化。
【参考方案1】:
看起来您收到了一个字典列表,首先您需要遍历该列表。喜欢:
<table>
% for line in devDict %
<tr>
% for key, value in line.items %
<td> key </td>
<td> value </td>
% endfor %
</tr>
% endfor %
</table>
【讨论】:
【参考方案2】:我面临的问题是无法将数据从套接字渲染到浏览器,因为有两种不同的协议。我必须首先在它们之间建立一座桥梁,从套接字到 websocket。我通过使用:https://github.com/yankov/webtcp 做到了这一点。然后我能够将数据从套接字渲染到浏览器。
【讨论】:
以上是关于如何在django中将python字典动态输出到html?的主要内容,如果未能解决你的问题,请参考以下文章