【问题标题】:How can I run a python script on the command line through the click of an HTML Button?如何通过单击 HTML 按钮在命令行上运行 python 脚本?
【发布时间】:2017-12-12 18:41:43
【问题描述】:

我知道以前有人问过类似的问题,而且我环顾四周。

目前我正在运行一个 python 脚本来创建一个 HTML 页面(我们运行的各种应用程序的状态列表),然后我使用 nginx 在我们的一个 DNS 记录上提供内容.

由于我不想经常运行 Python 应用程序并创建大量日志,因此我决定下一个最佳选择就是拥有一个用户可以按下的 HTML 按钮——触发 Python 脚本来重新制作 HTML 文件,然后重新加载页面。

在列出我尝试过的内容之前。我只想指出,我不能使用 php 解决方案,因为运行 PHP 存在服务器问题。

首先,我尝试运行一些 AJAX POST,结果只是以文本形式显示脚本......

function postData(input) {
        $.ajax({
            type: "POST",
            url: "/status.py",
            data: { param: input },
            success: callbackFunc
        });
    }
    
function callbackFunc(response) {
    // do something with the response
    alert(response)
}
    
// A $( document ).ready() block.
$( document ).ready(function() {
    console.log( "ready!" );
    postData("Hello world")
});

然后我尝试创建一个节点应用程序并了解到 nodejs 运行在服务器端并且不能在 HTML 中调用......哎呀。

看一下nginx配置文件

server {
  listen 80;

  server_name mydnsrecord.com;

  charset UTF-8;

  location ~ /.svn/ { deny all; }
  location ~ /.git/ { deny all; }

  location / {
    expires -1;

    alias /path/to/index/;
    index index.html;

    add_header "X-UA-Compatible" "IE=edge";
    add_header "X-Frame-Options" "DENY";

    proxy_set_header      X-Real-IP          $remote_addr;
    proxy_set_header      X-Forwarded-For    $proxy_add_x_forwarded_for;
    proxy_set_header      Host               $http_host;
  }

  error_page  405     =200 $uri;

}

如果有人能指出我的方向或给我一些关于如何实现这一目标的提示,那就太棒了。

谢谢。

【问题讨论】:

  • Python 也运行服务器端。您的 Web 服务器是否配置为支持运行 Python 脚本?这听起来不像是一个实际的编程问题。
  • flask 或 django 可以选择吗?您需要某种服务器来监听按钮按下以对其做出反应。

标签: javascript python html nginx


【解决方案1】:

你不能简单地链接到你的 python 脚本。

您需要在服务器上创建一个 API 端点,该端点将依次运行 python 脚本并返回结果

这里有一个资源可以让你朝着正确的方向前进:

how to set up uwsgi and nginx to serve python apps on ubuntu

附: - 你的问题对于 Stack Overflow 来说太宽泛了

【讨论】:

  • 嗯,我会通读的。我看到他们在 CentOS 上也有一个版本,这是我正在运行的发行版。感谢您的领导。
猜你喜欢
  • 2019-02-09
  • 1970-01-01
  • 2016-07-15
  • 1970-01-01
  • 1970-01-01
  • 2019-10-29
  • 1970-01-01
  • 2017-09-13
相关资源
最近更新 更多