ajax请求包含数据到vanilla python文件

时间:2017-05-11 21:17:24

标签: javascript python ajax django

我在python中有一些维护脚本,并且正在努力创建一个快速的html界面来处理这些东西,以便通过GUI来解决问题。

我认为它会像ajax一样简单到python文件,其中包含一些数据参数,如下所示:

$.ajax({
  type:"POST",
  url: "sample.py",
  data: {json: self.json, filename: self.filename},
  success: function(){ console.log("success"); },
  error: function(){ console.log("error"); }
}).done(function(){ console.log("done"); });

它找到了该文件,但响应是python文件的内容,而不是执行。

为了便于使用, sample.py 如下:

#!/usr/bin/python
import os

def main():
    os.system("echo 'test file' > sampleFile.txt")


if __init__ == "__main__":
    main()

该文件独立运行,但我有两个问题:

1:如何获取ajax文件以使python运行? 2:我如何捕捉并处理这些参数。

在查看文件权限时,它表示它具有完全控制权,因此它似乎不像chmod + x sample.py

那样简单

我不想经历创建Django应用程序的所有开销,因为它是一个单页的html文件,带有angularjs javascript实现和bootstrap。感觉创建一个完整的Django或Flask应用程序将需要很多开销,但我知道这些框架可能隐藏了我需要的所有工作的密钥。

修改

我的一部分正在思考以下内容,但也许我的逻辑是关闭的。 1-启动SimpleHTTPServer 2-在目标端口上设置Socket侦听器。 3-捕获信息并执行脚本。

我注意到当我运行一个html文件时,它通过localhost为它分配一个端口,但显然如果我需要启动一个服务器并设置它,需要一个不同的机制来启动html文件等待拦截请求的文件。

1 个答案:

答案 0 :(得分:0)

您将不得不运行某些运行该python文件(选项包括但不限于flask,django,wsgi或其他一些cgi框架[Running python through fastCGI for nginx) 。你是网络服务器正在做它应该做的事情,为你提供文件的静态内容。如果你想通过ajax在服务器上运行那个python文件(根据你的网络设置可能不安全),你必须让你的网络服务器知道要调用wsgi,fastcgi等来处理python文件当特定路线被击中时