2024-05-19 20:11:54 发布
网友
我有一个问题,我必须显示进入数据库的数据,而不必按任何按钮或做任何事情。 我正在为一家医院创建一个应用程序,它有两个视图,一个用于医生,一个用于患者。 我想一旦病人出现症状,医生就可以不按任何按钮立即看到。 我不知道怎么做。 任何帮助都将不胜感激。 提前谢谢
像Django这样的标准web框架的工作方式是,它需要请求输入并提供输出。你知道吗
Request -> (Nginx/Gunicorn/...) -> Django -> Output -> (Html/JSON/XML)
当您在浏览器中键入地址并按enter键,或者发送Ajax请求时(相同,但不按enter键并刷新页面),就会发生请求。你知道吗
Django一个人不可能做这样的事:
(An event on your server) -> Django -> your browser
Django不知道你的浏览器在哪里。你的浏览器知道他在哪里,但不是相反。你知道吗
过去,我们通过在JavaScript中设置一个每n秒刷新一次页面的计时器来解决这个问题。你知道吗
setTimeout(function(){ window.location.reload(1); }, 5000);
现在,更好的解决方案是使用WebSocket。客户端,它们看起来是这样的:
let mySocket = new WebSocket("ws://www.example.com/socketserver"); mySocket.onmessage = function (event) { console.log(event.data); }
这假设在"ws://www.example.com/socketserver"中,您正在为一个web套接字提供服务,该套接字是一个服务器,每当您通知它时,它就会向所有侦听的客户端发送消息。你知道吗
"ws://www.example.com/socketserver"
Django无法为您做到这一点:它期望的是第一种交互,而且仅此而已。你知道吗
如果你已经有了Django的程序或者你只精通它,那么通常推荐用于websockets的服务器端软件是芹菜。你知道吗
在这里阅读:https://celery.readthedocs.io/en/latest/getting-started/introduction.html
对于您的应用程序来说,这可能相当复杂。你知道吗
另一种选择是NodeJS,一种100%异步的运行时环境。你知道吗
你不能单独用Django。例如,您必须使用一些JS框架(React、Vue、Angular)和WebSockets。你知道吗
像Django这样的标准web框架的工作方式是,它需要请求输入并提供输出。你知道吗
当您在浏览器中键入地址并按enter键,或者发送Ajax请求时(相同,但不按enter键并刷新页面),就会发生请求。你知道吗
Django一个人不可能做这样的事:
Django不知道你的浏览器在哪里。你的浏览器知道他在哪里,但不是相反。你知道吗
过去,我们通过在JavaScript中设置一个每n秒刷新一次页面的计时器来解决这个问题。你知道吗
现在,更好的解决方案是使用WebSocket。客户端,它们看起来是这样的:
这假设在
"ws://www.example.com/socketserver"
中,您正在为一个web套接字提供服务,该套接字是一个服务器,每当您通知它时,它就会向所有侦听的客户端发送消息。你知道吗Django无法为您做到这一点:它期望的是第一种交互,而且仅此而已。你知道吗
如果你已经有了Django的程序或者你只精通它,那么通常推荐用于websockets的服务器端软件是芹菜。你知道吗
在这里阅读:https://celery.readthedocs.io/en/latest/getting-started/introduction.html
对于您的应用程序来说,这可能相当复杂。你知道吗
另一种选择是NodeJS,一种100%异步的运行时环境。你知道吗
你不能单独用Django。例如,您必须使用一些JS框架(React、Vue、Angular)和WebSockets。你知道吗
相关问题 更多 >
编程相关推荐