django - 根据 Django 通道中的数据库事件向用户发送数据
问题描述
我在 Django 中有一个应用程序,一些用户可以添加和更新数据。这些用户使用 Django 标准表单和视图添加或更新数据。
我想实现另一个应用程序,当用户在数据库中更新或创建数据时向所有用户发送新数据。我阅读了有关可以处理 Web 套接字的 Django 通道,但我在 Django 通道中找不到有关服务器或数据库事件的信息。
那么当数据库事件发生时如何向用户发送数据呢?
解决方案
您可以使用 Signals 来检测 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"
})
推荐阅读
- prestashop - Prestashop ajax 报废或数量增加时出错
- javascript - 发送带有表单的文件,但替换 FormData api 工作
- ios - 通过 fontName 获取 UIFont 的 UIFontWeight
- javascript - 在 webdriver 中执行的性能影响
- colors - 如何判断颜色是虚构的/不可能的?
- mysql - 如果它们在相邻小时内,则合并日期
- laravel - 如何检索 Laravel Passport 访问令牌过期时间或日期时间?
- javascript - Javascript:如何将字符串(例如:“foo bar”)编码为 int 表示?
- arduino - Arduino Uno Board 未显示在我的端口下或 Arduino 中
- ruby-on-rails - 在 CI 上使用 Cypress 启动 Rails 测试服务器