jer*_*ord 1 python django django-views
我想知道如何在 Django 中的某个时间在屏幕顶部向用户显示一条简单的消息。我一直无法在网上找到有关此的任何信息,所以我想知道我将如何进行此操作。
我需要对 DateTime 做些什么吗?我将代码包含在什么视图/模型中?
谢谢你提供的所有帮助 :)
我仍然没有足够的声誉来评论:
所以当你“阅读”这个答案时告诉我,我会删除它。如果您愿意,可以将有趣的部分复制/粘贴到评论中。
我认为确切的用例对于给出正确答案非常重要。这完全取决于您对“特定时间”的确切含义。
如果您已经预先知道(在用户打开页面时)该通知何时发生,那么 Kostas Charitidis 是正确的。该页面可以仅使用 javascript 来编写计时器,并且 Web 浏览器可以在给定时间向 Django 发出请求以获取显示消息。
要在给定时间将任何内容从 Web 服务器“推送”到 Web 浏览器,需要诸如连续轮询、长轮询、Web 套接字之类的东西。
如果预先不知道通知时间,那么轮询方法将例如使用一段 javascript,它会定期(每隔几秒/分钟/取决于您的用例)查询 Django 服务器是否应该获取消息。
长轮询是一种方法,其中 Web 浏览器向服务器执行 get 请求,而服务器会暂停响应,直到应发送消息为止。(如果请求超时,将启动新的轮询请求)但是要(有效地)使用长轮询,您需要在服务器端使用一些特殊的插件来使其高效/资源友好。
如果您的网站不需要从一些旧的公司(或偏执狂)防火墙后面访问,那么您可以考虑使用网络套接字(但仍有一些公共服务/大公司会阻止网络套接字)
django-channels ( https://pypi.org/project/channels/ ) 可以帮助您处理网络套接字通知和一些后台任务
celery ( https://pypi.org/project/celery/ ) 可以帮助您运行定期/延迟/任务,但不包含将消息发送到浏览器的方法。Celery 是最受推荐的解决方案之一,但(在我看来)设置起来相当痛苦。
根据项目的不同(例如 django-background-tasks https://pypi.org/project/django-background-tasks/)可能会完成这项工作
您可以查看 django 消息框架工作 ( https://docs.djangoproject.com/en/2.2/ref/contrib/messages/ )。但很可能在您的上下文中这不是正确的答案。
归档时间: |
|
查看次数: |
1311 次 |
最近记录: |