【问题标题】:Why I cannot use Django Signals to reload HTML page为什么我不能使用 Django Signals 重新加载 HTML 页面
【发布时间】:2020-01-28 17:31:43
【问题描述】:

我想在保存数据库中的特定表时重新加载或刷新 HTML 页面(阻止内容)。我的第一个想法是使用 Django Signals(post-save() 方法)。此触发器将触发视图或呈现 html 模板。但我读到这是不可能的和/或这不是最佳做法。

为什么不能为此目的使用 Django 信号?最佳实践是什么?除了避免 AJAX 请求,您还知道另一种方法吗?

非常感谢您的回答。

【问题讨论】:

标签: django django-templates signals


【解决方案1】:

这是不可能的,因为 Django Signal 只是一个在触发信号时运行函数的钩子。这不会改变您的网页仍在使用 HTTP 的事实,它是无状态的。这意味着一旦您的页面由服务器呈现然后发送到您的客户端(Chrome、IE 等),连接就基本上关闭了。

为了保持开放的通道,您可以使用称为 WebSockets 的东西来保持连接处于活动状态,就像 @schillingt 提到的那样。这将允许您在用户页面上获得实时更新。

Django 频道文档:https://channels.readthedocs.io/en/latest/

【讨论】:

  • 感谢您的解释
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-10
  • 2019-12-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-31
相关资源
最近更新 更多