让 python 通过浏览器与本地 Flask 应用对话

Make python talk to local Flask app via browser

这可能是一个简单的架构问题,但我想不通。

我有:

基本上我的 Raspberry pi 本地有两个应用程序 运行ning:

我想要的:

当我说一个关键字(例如天气)时,我希望我的本地 Flask 应用程序 return 天气(已经具有此功能和视图),最好是在小框架中而不重新加载整个页面。

我想到的:

我想过让我的本地应用程序在浏览器中进行 JS 调用,但无法真正弄清楚如何做。我能想到的最好的事情是相当于 Applescript 在浏览器中注入 JS 调用......从那时起,我可以轻松地对我的天气视图进行 ajax 调用,并且 return 结果无需刷新这一页。 我也考虑过使用 React 或 Angular 之类的东西,或者连接这两个应用程序,但我不是 100% 确定如何。

这有点棘手,因为您想根据服务器上的某些事件更新客户端,而通常交互都是单向的(即客户端发出请求,服务器响应,仅此而已)。

我要做的是设置某种双向协议,例如 WebSockets。 Flask 的一个不错的库是 Flask-SocketIO. You can then have your Python scripts from the C++ app hit an endpoint in your Flask app, and that endpoint can emit() a message to the client. On the client side,您可以接收这些事件并相应地更新您的视图。