Python 持续更新Django页面的内容

Python 持续更新Django页面的内容,python,django,Python,Django,我有一个数据库,它存储每秒生成的一些行。我想更新网站每一个新的内容到达数据库,我不想刷新页面,但添加新行到当前页面。最好的方法是什么?您应该使用AJAX查询,可以使用以下两种技术之一: 定期更新页面请求(并用JavaScript更新表的结果;后端保持普通的django);或 使用长轮询(一种通常称为“comet”的技术)保持与服务器的连接打开,并在有更新时接收服务器事件。在为请求/响应模式设计的框架中,这方面的后端可能有点棘手;但是您可以找到如何在python中实现这一点的线索 您需要实现com

我有一个数据库,它存储每秒生成的一些行。我想更新网站每一个新的内容到达数据库,我不想刷新页面,但添加新行到当前页面。最好的方法是什么?

您应该使用AJAX查询,可以使用以下两种技术之一:

  • 定期更新页面请求(并用JavaScript更新表的结果;后端保持普通的django);或
  • 使用长轮询(一种通常称为“comet”的技术)保持与服务器的连接打开,并在有更新时接收服务器事件。在为请求/响应模式设计的框架中,这方面的后端可能有点棘手;但是您可以找到如何在python中实现这一点的线索

  • 您需要实现comet,最好的方法是使用socket.io。然后在您的代码中,您可能要实现一个生成器,并在得到结果时返回结果。请参阅Django socketio:这不是一个微不足道的修复。简单的解决方案是使用短轮询(比如说,使用ajax并每隔5-6秒请求一次新内容)。这种解决方案效率很低,但不需要什么技巧。主要是在前端。comet中的另一种替代方法是长轮询,但它仍然需要很多更改。所以我会把时间花在socket.ioajax上,并通过它获取数据(可能是JSON格式,带有jQiery getJSON函数),如果我想每1分钟收集一次数据,就不会影响站点的性能。这实际上取决于你的应用程序、用户数量、加载模式等。在常见的web应用程序扩展中,每1秒更新一次会被认为有点过于激进。但是,如果您当前没有太多的负载,那么就可以省去在django上实现comet的麻烦。如果你有足够的灵活性将你的应用程序限制在HTML5客户端上,你可以使用websockets——这已经足够了。