让 python 通过浏览器与本地 Flask 应用对话
Make python talk to local Flask app via browser
这可能是一个简单的架构问题,但我想不通。
我有:
基本上我的 Raspberry pi 本地有两个应用程序 运行ning:
- 一个 C++ 应用程序 (Voicecommand) 允许我从我的麦克风和 运行 各种 python 脚本执行命令。对于某些关键字,我可以 运行 一个 python 脚本来打开浏览器或执行任何操作。
- 一个简单的 Flask 应用程序,带有几个基本视图
我想要的:
当我说一个关键字(例如天气)时,我希望我的本地 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,您可以接收这些事件并相应地更新您的视图。
这可能是一个简单的架构问题,但我想不通。
我有:
基本上我的 Raspberry pi 本地有两个应用程序 运行ning:
- 一个 C++ 应用程序 (Voicecommand) 允许我从我的麦克风和 运行 各种 python 脚本执行命令。对于某些关键字,我可以 运行 一个 python 脚本来打开浏览器或执行任何操作。
- 一个简单的 Flask 应用程序,带有几个基本视图
我想要的:
当我说一个关键字(例如天气)时,我希望我的本地 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,您可以接收这些事件并相应地更新您的视图。