如何使用django实现实时?

时间:2016-07-18 13:26:57

标签: python django websocket real-time rethinkdb

我有一个rethinkdb。数据将每五分钟进入数据库。 我想创建一个网站来实时检查来自rethinkdb的数据流。 也就是说,当浏览网页时,来自网页上的数据库的数据可以自动更新而无需刷新网页。 我知道有几种方法可以实现它,例如django channel或websockets。但是,django中的模型不支持rethinkdb。

对不起,我是一个制作网站的外行,可能会表达不准确的事情。 有人可以给我一个关键字或提示吗?

1 个答案:

答案 0 :(得分:1)

如果您提出更具体的问题,这里的社区将能够为您提供更好的支持。

但是,这是您问题的一般解决方案。

您需要做两件事:

  1. 创建后端API ,允许您:

    • 检查是否已将新数据添加到数据库
    • 通过REST api请求获取新数据
  2. 前端AJAX请求发送到此api

    • 获取数据
    • 定期(每30秒)检查是否有新数据
    • 如果检测到新数据,则再次获取数据
  3. 为了使用Django作为后端,我建议使用Django Rest Framework来创建API。

    此API应该有两个端点:

    1. 您的数据的ListView
    2. 端点返回最后一个数据点的id和时间戳
    3. 接下来,您必须创建一个使用javascript向这些端点发出请求的前端。获取数据时,存储最新数据点的ID和时间戳。用它来检查是否有新数据。

      我建议使用Angularreact这样的Javascript框架,但根据您的需要,这可能会有点过分。

      修改

      现在你已经更新了你的答案以便更具体,这是我的建议。听起来你的首要任务是rethinkDB和实时数据。 Django不太适合这个,因为它与rethinkDB不兼容。然而,Django的Django实时支持已经走了很长一段路。

      听起来你早在你的项目中,在Django几乎没有代码库。我建议使用horizon以及重新考虑db。 Horizo​​n是一个javascript后端,专为来自rethinkdb的实时数据而构建。