带Web接口的Python Control Kivy应用程序



我创建了一个用于控制覆盆子PI的GPIO引脚的Kivy GUI。在Kivy App中,我导入了我的Python文件,在其中定义了用于设置输出并进行计算的功能。现在,我想通过Web界面来控制这些功能,并与触摸屏上的本地GUI并行。

我已经看到存在诸如烧瓶或django之类的框架,我的问题是如何在跑步框架(如烧瓶)和已经使用的现有功能之间获得连接,是否有建议的方法?

我站在类似问题的面前,所以这是我的想法:

从理论上讲,应该可以在一个单独的线程中将烧瓶和kivy组合在一个应用程序中,但是我不会尝试做到这一点,因为它们是很大的框架,并且调试它将是压倒性的(或使其与Nginx一起使用)。

选项1

使用两个单独的应用程序 - Kivy和Flask。Kivy担任主人,它可以完成所有逻辑,控制GPIOS ECT。每次加载(获取)页面或发布更改时,烧瓶都会通过GRPC调用Kivy,以获取当前状态,计算或设置GPIO。

选项2

使用三个应用程序。其中之一是控制GPIO,进行计算并具有所有逻辑。另外两个应用程序是Blask和Kivy,它们也通过GRPC与第一次进行交谈。

选项3

以前的任何数据库。

在我的情况下,我将使用第二个选项与数据库使用,但主要是因为我需要在重置之间的数据(过去事件,配置)持续存在,以便我将某些数据库(Mongo)用作通信的媒介。也许我还将介绍一些GRPC-主应用程序将具有updateConfig函数,因此它不必在所有时间db中检查

最新更新