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模型不仅仅是模型,这就是我向您展示邮件功能的原因。它的第三方电话