【问题标题】:Python control kivy app with web interfacePython 控制带有 Web 界面的 kivy 应用程序
【发布时间】:2017-04-06 14:16:19
【问题描述】:
我创建了一个 kivy gui 来控制 Raspberry Pi 的 GPIO 引脚。在 kivy 应用程序中,我导入了我的 python 文件,我在其中定义了用于设置输出和进行计算的函数。现在我想通过 Web 界面控制这些功能,并在触摸屏上与我的本地 GUI 并行。
我已经看到存在像 Flask 或 Django 这样的框架,我的问题是如何在我正在运行的框架(如 Flask)和已经在本地使用的现有函数之间建立连接,有推荐的方法吗?
【问题讨论】:
标签:
python
web
frameworks
kivy
【解决方案1】:
我站在类似的问题面前,所以这是我的想法:
理论上应该可以将flask和kivy组合在一个应用程序中的单独线程中,但我不会尝试这样做,因为它们是相当大的框架并且调试它会让人不知所措(或者让它与nginx一起工作) .
选项 1
使用两个独立的应用程序 - kivy 和 flask。 Kivy 作为主机工作,它执行所有逻辑,控制 GPIO 等。每次加载 (GET) 页面或 POST 更改时,flask 都会通过grpc 调用 kivy 以获取当前状态、计算或设置 GPIO。
选项 2
使用三个应用程序。
其中之一是控制 GPIO,进行计算并拥有所有逻辑。另外两个应用程序是flask 和kivy,它们也通过grpc 与第一个应用程序对话。
选项 3
任何以前的数据库。
在我的情况下,我将使用数据库的第二个选项,但主要是因为我需要在重置之间保留数据(过去的事件、配置),以便我将使用一些数据库 (mongo) 作为通信媒介。也许我还会介绍一些 grpc - 主应用程序将具有 updateConfig 功能,这样它就不必一直检查数据库的变化