【问题标题】:how to link django signals and ajax如何链接 django 信号和 ajax
【发布时间】:2021-12-13 02:40:40
【问题描述】:

我正在尝试使用物联网设备实现数据收集系统。 目前,数据传输是通过使用 django REST 框架的 API 进行的。效果很好 我想知道一些方法,以便在接收数据时生成触发器,并使用 ajax 刷新用户网站上的这些触发器。也许使用信号,但不知道如何将该信号与 ajax 绑定。 我对javascript有点新手。 我应该遵循什么路径?

【问题讨论】:

    标签: django ajax api django-rest-framework signals


    【解决方案1】:

    您可能想要使用模型信号。但这仅适用于您尝试将某些内容保存到数据库中的情况。

    【讨论】:

    • 我喜欢接收数据(这是通过 API 工作的),以及使用 ajax 刷新页面。有可能吗?
    • 是的...抱歉回复晚了。
    【解决方案2】:

    Ajax 请求只是一个普通的 HTTP 请求。请求被发送到普通视图。 Django 信号由发送方和接收方连接。我不确定在您的情况下发送了什么,但 Django 文档中使用的一个主要示例是为模型对象提供 post_save 信号。如果一个对象(来自模型)调用 save 或被创建,则发送一个信号。因此,如果您在处理视图逻辑时保存对象,则信号将运行。

    这就是你要找的吗?如果您正在考虑异步执行某些操作,以便可以立即将响应发送回客户端并稍后处理您想要的任何内容,请查看 celery 或 Django-q。

    【讨论】:

    • 我可以在接收 API 中发送一个信号,但我不知道如何将此信号链接到 ajax 请求或视图以使用新数据刷新部分页面。我是我的概念错了。
    • 我喜欢用户查看页面,如果接收到新数据,页面的一部分将刷新。
    • 您可以使用 Javascript 手动刷新页面。如果您需要刷新页面,那么在您的 HTTPResponse 对象中(您可以使用 Django 中间件操作数据),您可以修改数据以包含一些内容,告诉您的 JS 使用 location.reload() 手动刷新页面。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-11
    • 2016-05-04
    • 2017-05-13
    • 2017-03-03
    • 1970-01-01
    • 2018-05-14
    相关资源
    最近更新 更多