0

我正在尝试找出最适合我的项目的工具。

我有一个在树莓派(RPi)上运行的 lighttpd 服务器和一个控制相机的 Python3 模块。我需要对相机进行大量自定义控制,并且需要能够动态更改模式。

我想让一个 python 脚本持续运行,它等待来自 lighttpd 服务器的命令,最终来自用户通过 Intranet 与基于 HTML 的网页交互(没有外部连接)。

我过去使用 Flask 来控制正在运行的脚本,并且我使用 FastCGI 来执行脚本。我想继续使用 lighttpd 服务器,而不是完全切换到 Flask,但我不知道一旦脚本实际运行以执行各个功能后如何与脚本交互。我不能将它们分成多个功能,因为一次只有一个脚本可以控制相机。

设置 Flask 应用程序并让 lighttpd 在那里发送请求是正确的解决方案,还是有更好的工具呢?

4

2 回答 2

1

我过去使用 Flask 来控制正在运行的脚本,并且我使用 FastCGI 来执行脚本。

根据您的经验,一种解决方案是做您所知道的事情。lighttpd 可以通过 FastCGI 执行你的脚本。Python3 支持带有 Flask(或其他框架)的 FastCGI。串行处理请求的 python3 应用程序将有一个向相机发出命令的进程。

我想继续使用 lighttpd 服务器,而不是完全切换到 Flask,但我不知道一旦脚本实际运行以执行各个功能后如何与脚本交互。

将 Flask 应用程序配置为作为 FastCGI 应用程序运行,而不是作为独立的网络服务器运行。

于 2020-06-04T17:44:14.970 回答
0

您有几个问题合并为一个,其中一些是基于选项的问题,因此我将避免回答这些问题。这些是基于意见的问题。

  1. 我正在尝试找出最适合我的项目的工具。
  2. 是设置 Flask 应用程序并让 lighttpd 在那里发送请求的正确解决方案
  3. 有没有更好的工具呢?

我指出这一点的原因不是因为您的问题无效,而是因为这些问题经常会被标记和/或关闭。看看这个以供将来参考。

现在来回答这个问题:

“一旦脚本实际运行以执行各个功能,我不知道如何与脚本交互”

尝试这样做:

  1. 修改您的脚本以使用线程和/或进程。
  2. 例如,您将拥有一个持续运行的线程,该线程将是相机。
  3. 您将有另一个非阻塞线程监听 IO 命令。
  4. 您的 IO 命令将通过命令行参数发出。
  5. 收到 IO 命令后,您的 IO 线程会根据需要将正在运行的相机线程重定向到特定功能。

希望有帮助,祝你好运!!

于 2020-06-04T14:53:36.780 回答