【问题标题】:Is it possible to execute a python script on my machine from an HTML button?是否可以通过 HTML 按钮在我的机器上执行 python 脚本?
【发布时间】:2021-06-14 07:13:57
【问题描述】:

假设我有一个托管网页的 Apache 网络服务器,该网页包含一个按钮,单击按钮时如何在我的机器(服务器机器)上触发 python 脚本的执行?

【问题讨论】:

  • 您可以使用 Flask 提供网页服务,并使按钮在点击时提交表单。然后在提交处理函数中处理提交(或做任何你想做的事情)。 Detected Button Press In Flask
  • 使用 ExecCGI 配置您的 Apache 服务器以运行 Python 脚本。

标签: javascript python html


【解决方案1】:

一种可行的解决方案是使用网络请求。由于您的要求非常笼统,我无法真正给您任何代码,但我可以给您一种程序。

  1. Python WebApp 在同一台服务器上运行

  2. 网站使用 javascript 向您设置的位置发出 XmlHttprequest

  3. 定义的函数执行/执行你的 Python 脚本

所有这些都可以通过使用像 Flask 这样的 FrameWork 轻松完成。

【讨论】:

    【解决方案2】:

    最简单的解决方案:

    在网络服务器上创建一个端点,每次有人访问它时执行 Python 进程(通过 GET/POST,任何东西),然后在浏览器中使用 AJAX(jQuery、VueJS+axios、本机 XmlHttpRequest)连接按钮到那个端点。

    这有很多问题:任何人都可以获取端点并多次触发该进程,这可能会使您的服务器崩溃。您需要对其进行密码保护,除非您对端点进行编码以防止其被垃圾邮件发送。

    这也会为每次点击生成一个进程。另一种解决方案是让 Python 进程保持运行并打开一个套接字,然后您可以从本地机器上的端点向该套接字发送命令。

    有很多方法可以做到这一点。

    【讨论】:

      【解决方案3】:

      其中一个解决方案是:

      1. 创建一个调用 python 脚本的端点(取决于你的服务器,如果是 python,你将只调用脚本,如果是另一个函数,你可以进行系统调用来调用 python 脚本)
      2. 单击此端点的按钮时使用 xml/Ajax 或任何其他调用

      请注意,您需要通过 JWT 保护您的端点以获得最大的安全性

      【讨论】:

        猜你喜欢
        • 2017-03-29
        • 1970-01-01
        • 2019-02-09
        • 1970-01-01
        • 2019-10-29
        • 2021-05-22
        • 1970-01-01
        • 1970-01-01
        • 2018-07-11
        相关资源
        最近更新 更多