Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将django模型中的更改发送到客户端服务_Python_Django_Asynchronous_Socket.io_Django Channels - Fatal编程技术网

Python 将django模型中的更改发送到客户端服务

Python 将django模型中的更改发送到客户端服务,python,django,asynchronous,socket.io,django-channels,Python,Django,Asynchronous,Socket.io,Django Channels,最近我收到一份关于我工作的公司的要求。他们希望我使用django构建一个API,为聊天机器人客户端提供支持。基本上它应该是这样工作的: API接收一个JSON对象,其中包含一个message\u receiver和一个message\u body,并将其发送到chatbot客户端,该客户端将处理所有“message sending”内容。伟大的在做了一些研究之后,我决定不采用客户机定期ping服务器以搜索要发送的新消息的逻辑,而是采用反向逻辑,在这种逻辑中,每当服务器接收到消息时,它都会自动发出

最近我收到一份关于我工作的公司的要求。他们希望我使用
django
构建一个API,为聊天机器人客户端提供支持。基本上它应该是这样工作的: API接收一个JSON对象,其中包含一个
message\u receiver
和一个
message\u body
,并将其发送到chatbot客户端,该客户端将处理所有“message sending”内容。伟大的在做了一些研究之后,我决定不采用客户机定期ping服务器以搜索要发送的新消息的逻辑,而是采用反向逻辑,在这种逻辑中,每当服务器接收到消息时,它都会自动发出一个事件,让客户机通知他发送消息

为此,我偶然发现了一些有趣的工具,比如
socket.io
,和
django频道
。我特别喜欢
socket.io
更多。所以在我动手之前,我画了所有的流程,遇到了一个我在互联网上找不到直接答案的问题,我研究的大多数教程都集中在展示通信客户端-服务器的工作原理,但我找不到一个能清楚地告诉我如何在django应用程序-服务器之间进行通信的教程,所以我的问题是

是否可以建立这样一种逻辑:每当保存我的
django
模型时,我都会发出一个
信号
,该信号将触发
事件
,并通过
websocket
使用
socket.io
创建通信服务器-->客户端

如果您有使用
django频道的解决方案
非常欢迎


谢谢大家!如果需要任何额外的信息,我会在这里。

您可以通过模型中的信号来完成此操作。在模型下定义此函数

@receiver(post_save, sender=MyModel)
def my_handler(sender, instance, created, *args, **kwargs):
    ...

    if instance.is_approved:
        mail.send_mail(...)

当模型发生变化时,您只想得到一个json消息对象?确切地说是@gamer。不一定要获取json,但我希望在保存模型实例时触发事件。您检查了吗?我知道信号是如何工作的,我只想确保您可以通过它访问socket.io/my websockets功能是的,您可以在模型中导入任何东西并在此处使用:)。django模型不仅仅是模型,这就是我向您展示邮件功能的原因。它的第三方电话