【问题标题】:How can I use django to realize real time?如何使用django实现实时?
【发布时间】:2016-07-18 13:26:56
【问题描述】:

我有一个 rethinkdb。数据将每五分钟进入数据库。 我想创建一个网站来实时检查 rethinkdb 的数据流。 即在浏览网页时,网页上的db数据可以自动更新,无需刷新网页。 我知道有几种方法可以使其成为实时,例如 django 频道或 websockets。但是,django 中的模型不支持 rethinkdb。

对不起,我是做网站的外行,可能表达不准确。 谁能给我一个关键字或提示?

【问题讨论】:

  • 欢迎来到 SO,请在提问时更具体一点:您尝试过什么,您期望什么等。请参阅how to ask
  • 你真的想用 Django 构建它吗?否则,我会推荐 Meteor(自动内置的后端到前端反应性)或带有 Firebase 的 AngularJS。简单来说,使用 Django,您需要有一个前端脚本,该脚本会按照您选择的时间间隔从服务器中提取数据。
  • github.com/andrewgodwin/channels-examples/tree/master/liveblog sor,我没有具体问这个问题。我使用的例子在上面。我的计划是使用 r.table('table_name').change().run() 可以让我知道新的数据输入,我想把它放在 websocket(onmessage 或其他东西) 上做实时的东西。但是,虽然我可以连接我的 rethinkdb,但在这个例子中我不知道如何将它连接到 websocket。有人可以给我一个提示吗?
  • @tinjuiho 我会用这段代码和这些新细节提出一个新问题

标签: python django websocket real-time rethinkdb


【解决方案1】:

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

不过,这里有一个针对您的问题的通用解决方案。

你需要做两件事:

  1. 创建一个后端 API,让您可以:

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

    • 获取数据
    • 定期(每 30 秒)检查是否有新数据
    • 如果检测到新数据,则再次获取数据

为此使用 Django 作为后端,我建议使用 Django Rest Framework 来创建您的 API。

这个 API 应该有两个端点:

  1. 您的数据的列表视图
  2. 端点返回最后一个数据点的 id 和时间戳

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

我建议使用 Javascript 框架,例如 Angularreact,但根据您的需要,这些可能有点过头了。

编辑:

既然您已经更新了更具体的答案,这是我的建议。听起来您的第一要务是重新思考数据库和实时数据。 Django 不太适合这个,因为它与 rethinkDB 不兼容。然而,使用 Django 频道在 Django 中的实时支持已经取得了长足的进步。

听起来您在项目的早期阶段并且在 Django 中几乎没有代码库。我建议使用 horizon 和 rethink db。 Horizo​​n 是一个为 rethinkdb 的实时数据构建的 javascript 后端。

【讨论】:

    猜你喜欢
    • 2014-07-10
    • 1970-01-01
    • 2021-06-24
    • 2021-03-09
    • 2021-12-21
    • 2011-09-05
    • 1970-01-01
    • 2016-08-02
    • 1970-01-01
    相关资源
    最近更新 更多