Javascript 将数据转换为python文件的ajax请求

Javascript 将数据转换为python文件的ajax请求,javascript,python,ajax,django,Javascript,Python,Ajax,Django,我用python编写了一些维护脚本,并正在努力创建一个快速的html界面,以便使用GUI启动和处理配置 我想,对于一个包含一些数据参数的python文件,它将像ajax一样简单,如下所示: $.ajax({ type:"POST", url: "sample.py", data: {json: self.json, filename: self.filename}, success: function(){ console.log("success"); }, error:

我用python编写了一些维护脚本,并正在努力创建一个快速的html界面,以便使用GUI启动和处理配置

我想,对于一个包含一些数据参数的python文件,它将像ajax一样简单,如下所示:

$.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"); });
#!/usr/bin/python
import os

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


if __init__ == "__main__":
    main()
它找到了文件,但响应是python文件的内容,而不是执行

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

$.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"); });
#!/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实现和引导。我觉得创建一个完整的Django或Flask应用程序需要花费很多开销,但是我知道这些框架可能隐藏了我需要的关键,使这些都能正常工作

编辑

我的一部分在想下面的事情,但也许我的逻辑是错误的。 1-启动SimpleHTTPServer 2-在目标端口上设置套接字侦听器。 3-捕获信息并执行脚本


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

您必须运行该python文件(选项包括但不限于flask、django、wsgi或其他cgi框架[)。您的Web服务器正在执行它应该执行的操作,向您提供文件的静态内容。如果您希望通过ajax在服务器上运行该python文件(根据您的网络设置,这可能不安全),您必须让您的Web服务器知道在点击特定路由时调用wsgi、fastcgi等来处理python文件。

我明白了。这似乎不是我可以通过在没有服务器的情况下运行html文件来管理的事情(因为文件的打开在localhost:80打开)。我需要更多的框架,而不是html文件和杠杆式js文件。我在想也许可以这样做?它将允许我创建和运行一个服务器,然后将请求发送到cgi文件箱中的文件?这些框架使用起来更简单。例如:“‘Flask’下的示例就足够了。”ing,只需编写自己的函数,而不是hello()