我们需要从Javascript运行python脚本。我们必须将输入字符串作为参数传递给python脚本,并在web页面上显示python输出。
这是Python代码,当我在linux中运行此代码时,此代码运行良好:./sample.py 12345
,给出输出12345
,并且./sample.py
将显示no argument found
#!/usr/bin/env python
import os
import sys
if len(sys.argv) > 1:
output = sys.argv[1]
else:
output = "no argument found"
print "Hello World!!!"
print output
如何从上面python中的ajax调用访问'param',并将该值用作参数?
Javascript代码:
$.ajax({
type: 'POST',
url: "scripts/sample.py",
data: {param: xyz}, //passing some input here
dataType: "text",
success: function(response){
output = response;
alert(output);
}
}).done(function(data){
console.log(data);
alert(data);
});
任何帮助都将不胜感激。
编辑
如前所述,我正在尝试使用CGI使我的代码工作。
#!/Python34/python
# Import modules for CGI handling
import cgi, cgitb
# Create instance of FieldStorage
data= cgi.FieldStorage()
# Get data from fields
output = data["param"]
# This will print to stdout for testing
print("Hello World!!!")
print(output)
每当运行Ajax调用时,响应为:[object HTMLDivElement],在Firebug中打开时显示python脚本的整个文本。我错过了什么?
从字段中获取数据的操作如下:
另外,意识到在尝试执行时存在^M个字符的问题,我使用
vi
编辑器解决了这个问题。Ajax调用将是对python脚本的web请求
(http)
,因此python脚本需要监听端口上的此类请求并作出响应。建议使用上述方法,在样品py中使用简单的web server,或者可以使用现有的方法,如烧瓶(或许多其他方法)。
仅供参考-对于您的简单任务,我不建议使用Django(它是一个大而重的web框架,有很多您不需要的功能)。
在完全透明的情况下,我是这个GitHub回购协议的贡献者。我使用WayScript AJAX触发器解决了这个问题:
有关说明,请参阅GitHub Repo:https://github.com/wayscript/ajax-to-python-example
相关问题 更多 >
编程相关推荐