我们需要从
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框架,您不需要很多钟声).