如何通过单击HTML按钮在命令行上运行python脚本?

时间:2017-12-12 18:41:44

标签: javascript python html nginx

我之前已经问过类似的问题了,我已经完成了一个环顾四周的问题。

目前我正在做的是运行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中调用.. whoops。

以下是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;

}

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

感谢。

1 个答案:

答案 0 :(得分:0)

您无法直接链接到您的python脚本。

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

这是一个可以向您发送正确方向的资源:

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

P.S。 - 您的问题对于Stack Overflow而言过于宽泛