我们需要从
Javascript运行python脚本.我们必须将一个输入String作为参数传递给python脚本,并将python输出显示在我们的网页上.
这是Python代码,当我在我的linux框中运行这个代码时,这段代码可以正常工作:./sample.py 12345,给出输出12345和./sample.py将不会显示任何参数
#!/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脚本的全部文本.我在这里缺少什么?
解决方法
您的Ajax调用将是python脚本的Web请求(http),因此您的python脚本需要在端口上侦听此类请求并回复.
建议使用上述方法,在样本中使用简单的web server,或者您可以使用现有的例如Flask(或许多其他)的方法.
FYI – 为了您的简单任务,我不会推荐Django(它是一个庞大而沉重的Web框架,您不需要很多钟声).