使用 HTML 界面控制 lighttpd 服务器上的 运行 python 脚本

Use HTML interface to control a running python script on a lighttpd server

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

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

我想要一个 python 脚本连续 运行 等待来自 lighttpd 服务器的命令,这些命令最终将来自用户与基于 HTML 的网页交互通过内联网(无外部连接)。

以前用Flask控制过一个运行脚本,用过FastCGI执行过脚本。我想继续使用 lighttpd 服务器,而不是完全切换到 Flask,但我不知道如何与脚本交互,一旦它实际上 运行 执行个别功能。我不能将它们分成多个函数,因为一次只能有一个脚本控制相机。

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

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

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

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

现在回答这个问题:

" 我不知道如何与脚本交互,一旦它实际上是 运行 执行个别功能"

尝试这样做:

  1. 修改您的脚本以使用线程 and/or 个进程。
  2. 例如,您将有一个连续的 运行 线程,它将成为相机。
  3. 您将有另一个非阻塞线程侦听 IO 命令。
  4. 您的 IO 命令将通过命令行参数发送。
  5. 您的 IO 线程在收到 IO 命令后会根据需要将您的 运行 相机线程重定向到特定函数。

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

I have used Flask in the past to control a running script, and I have used FastCGI to execute scripts.

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

I would like to continue using the lighttpd server over rather than switching entirely over to Flask, but I don't know how to interact with the script once it is actually running to execute individual functions.

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