根据 Django 通道中的数据库事件向用户发送数据
Posted
技术标签:
【中文标题】根据 Django 通道中的数据库事件向用户发送数据【英文标题】:Send data to users base on database event in Django channels 【发布时间】:2019-03-17 21:47:11 【问题描述】:我在 Django 中有一个应用程序,一些用户可以添加和更新数据。这些用户使用 Django 标准表单和视图添加或更新数据。
我想实现另一个应用程序,当用户在数据库中更新或创建数据时向所有用户发送新数据。我阅读了可以处理 Web 套接字的 Django 通道,但我在 Django 通道中找不到有关服务器或数据库事件的信息。
那么当数据库事件发生时如何向用户发送数据呢?
【问题讨论】:
你能添加你的代码或者你目前已经实现的任何东西吗? @Junia 。我还没有这个应用程序的任何代码。我想先找到最好的方法。 【参考方案1】:您可以使用信号来检测 Django 中的数据库事件。看看这里解释的信号:https://docs.djangoproject.com/en/2.1/topics/signals/
基本上,您将按照以下方式做一些事情:
@receiver(post_save, sender=ModelClass)
def my_model_save(sender, instance, **kwargs):
# this code will be executed after an instance of ModelClass is saved.
Group(rate_key).send(
"text": "my message"
)
【讨论】:
以上是关于根据 Django 通道中的数据库事件向用户发送数据的主要内容,如果未能解决你的问题,请参考以下文章
如何根据 Firebase 数据库中的条目向我的 android 应用发送通知? [关闭]
Django - 通过 websocket 在事件上重复发送 API 调用结果(REST 框架 + 通道)
将数据从 Python Web 套接字客户端发送到 Django 通道