rit*_*art 15 javascript python ajax jquery parameter-passing
我们需要从Javascript运行python脚本.我们必须将输入String作为参数传递给python脚本,并将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
Run Code Online (Sandbox Code Playgroud)
如何从上面的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);
});
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激.
编辑
正如所建议的那样,我试图让我的代码使用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)
Run Code Online (Sandbox Code Playgroud)
每当运行Ajax调用时,响应为:[object HTMLDivElement],在Firebug中打开时会显示python脚本的整个文本.我在这里错过了什么?
从字段获取数据应按如下方式完成:
# Get data from fields
output = data.getvalue("param")
Run Code Online (Sandbox Code Playgroud)
另外,意识到尝试执行时存在 ^M 字符问题,我使用vi编辑器解决了这个问题。