我对网络开发很陌生,我试图在Django中实现一个显示动态数据表的网页。我希望数据表显示数据库中的所有对象,当新对象通过JSON进入时,数据表将自动更新,而无需用户刷新页面。这就是我现在所拥有的:
<table id="example" class="display" cellspacing="0" width="100%">
<thead>
<tr>
<th>Room</th>
<th>Request</th>
<th>Time</th>
<th>Mark as Done</th>
<th>Cannot Do</th>
</tr>
</thead>
<tbody>
{% for request in requests %}
<tr>
<td>{{ request.room }}</td>
<td>{{ request.request }}</td>
<td>{{ request.time }}</td>
<td>{{ request.done }}</td>
<td>{{ request.cannot }}</td>
</tr>
{% endfor %}
</tbody>
</table>
此数据表(使用dataTables框架)显示Django数据库中的所有请求对象,但只加载一次。 (当页面加载时,页面的Django视图会根据数据库查询传入&#39;请求。)我尝试研究问题,似乎我需要使用jQuery和/或阿贾克斯,但我不确定如何。我看到dataTables有一个row.add()函数,但同样,我不知道如何实现这个来更新数据表,其中包含推送到网站的JSON信息。
另外,我想象这将在Heroku dyno上运行。我的计划是让Heroku充当webhook的协调播放器,其中来自另一个应用程序的JSON输出被传递给Heroku,后者将更新Django中的数据库并触发网页上的数据表以动态更新。
我是否正确地考虑过这个问题?非常感谢任何帮助,如果有比我想到的更好的解决方案,请告诉我。
答案 0 :(得分:0)
首次加载页面时加载一个空表。
在datatable中使用ajax来加载数据 参考here
使用'../ajax/data/arrays.txt'
json url
对于刷新,您可以拥有setInterval
并通过ajax调用您的json url并推送到数据表。参考here
答案 1 :(得分:0)
我希望数据表显示数据库中的所有对象, 当一个新对象通过JSON进入时,数据表会 在没有用户刷新页面的情况下自行更新。
您正在搜索的术语是“实时网络应用程序”
此数据表显示Django数据库中的所有请求对象, 但只加载一次。
是的,因为到目前为止您已经实现了传统的Web应用程序,其中每个页面都是根据客户端请求加载的。
我希望数据表显示数据库中的所有对象, 当一个新对象通过JSON进入时。
要实现此目的,您需要编写一个客户端脚本,该脚本可以侦听服务器推送或池化服务器以获取新添加的数据。我不推荐后一种方法,因为它涉及汇集。
这些是你的选择