javascript - 从 javascript 与正在运行的 python 通信的正确方法
问题描述
我的目标:
- 正在运行的python不断改变变量的值。
- 使用html和javascript在浏览器上实时显示变化的值,只要python正在改变值。
以下是我的谷歌解决方案:
- 使用Flask编写 Python 代码
- 从 javascript请求通过Ajax运行 python
- python 将变量作为 JSON 响应回 javascript
基于这个解决方案,我有以下问题,如果有任何误解,请随时纠正我。
必须先手动执行 python,然后 javascript 才能发送 ajax 请求到
http://localhost:5000/[...some @app.route()]
. 我需要 python在第一个 ajax 请求之后开始无限运行(while 循环)。Flask python不能有 while 循环。不确定
app.run()
Flask 中的机制。一旦实现了第一点,一旦 python 更改变量,javascript 还必须不断更新html。现在看来我必须继续发送 ajax 请求才能从 python 获取变量。
非常感谢任何信息来解决我的问题!
解决方案
基本上,你需要三个部分
- 你的python循环A
- 网络应用程序 B
- 和一个 javascript 应用程序 C
您可以将 A+B 组合到一个进程中,在这种情况下,您必须在单独的线程中运行循环,或者您可以使用任何可用的 IPC 方式(如共享内存/管道/套接字)在 A 和 B 之间进行通信。一个简单的解决方案是使用数据库服务器,A 向该服务器写入数据,B 从该服务器读取数据。
如果 A 和 B 是分开的,那么 B 不一定是 python,你可以用 js 或 php 或其他任何方式编写它。
为了避免在客户端进行轮询,可以使用WebSockets在 B 和 C 之间进行通信。
推荐阅读
- python - 如何使用自定义 lambda 分析器保存 n-gram 模型?
- android - 在配对和取消配对蓝牙设备以进行配对/未配对时,没有回调到广播接收器
- spring-boot - 具有 Spring Boot 属性的 Spring Config Server
- python - 如何将一个字母和一个点分成不同的行
- javascript - 如何访问表单的更改值?
- java - 如何异步调用不同Spring bean的多个函数
- python - 使用python绘制多边形图案
- reactjs - React Native 渲染按钮
- python - Unstack 不再适用于非唯一索引
- flutter - MultiRepositoryProvider 不实例化 Bloc