我有从数据库导出数据的python脚本。脚本执行exportData函数()
我想通过 ajax 单击按钮在网站上运行它。
这是我想出来的,但它似乎没有运行 python 脚本。
$(document).ready(function() {
$("#open").click(function(){
$.ajax({
url:"export.py", success: function(){alert("DONE");}
});
});
});
<button type="button" class="open" id="open" onclick="#" >Button</button>
任何帮助将不胜感激。
最佳答案
如果您已经有一个现有网站
您不能直接从网页执行服务器端 python 脚本(并且根本不执行客户端 python 脚本)。您必须让服务器拦截请求,然后让它执行 python 脚本。
也就是说,您需要一个如下所示的管道:
[ client browser ] ----> [ web server ]
[ client browser ] [ web server ] ----> [ python myscript.py ]
[ client browser ] [ web server ] <---- [ python myscript.py ]
[ client browser ] <---- [ web server ]
您可以编写自己的 Web 服务器软件来执行此操作,但如果您真的只有一个 Python 脚本,则 CGI 通常用于让用户运行“任意”服务器端脚本,并因此接收
stdout
输出。根据您选择的 Web 服务器,有不同的方法来实现,但这里是基本的 Python 页面,希望可以为您提供足够的关键字来找到适合您环境的解决方案。如果您在 Google 上搜索“$myhttpservername python CGI”,您会找到大量指南。
https://docs.python.org/2/howto/webservers.html
请参阅以下指南,了解如何在 Apache 上设置 python cgi-bin:
http://www.linux.com/community/blogs/129-servers/757148-configuring-apache2-to-run-python-scripts
如果您没有 Web 服务器,而只想提供 Python 脚本
另一种方法是创建一个托管 Web 服务器本身的 Python 脚本。一个这样的例子是 cherrypy 。该示例显示了如何在端口 8080 上创建 Web 服务器:
import cherrypy
class HelloWorld(object):
def index(self):
return "Hello World!" # or whatever you want to do
index.exposed = True
cherrypy.quickstart(HelloWorld())
关于javascript - 使用 ajax 运行 python 脚本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25501914/