繁体   English   中英

使用 HTML 接口来控制在 lighttpd 服务器上运行的 python 脚本

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

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

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

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

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

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

我以前用Flask来控制一个运行脚本,我用FastCGI来执行脚本。

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

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

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

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

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

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

现在来回答这个问题:

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

尝试这样做:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM