使用ajax运行python脚本

2024-04-19 12:00:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我有从数据库导出数据的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>

任何帮助都将不胜感激。


Tags: 数据函数脚本数据库url网站ajaxfunction
1条回答
网友
1楼 · 发布于 2024-04-19 12:00:49

如果您已经有一个现有网站

不能直接从web页面执行服务器端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页面应该会给您提供足够的关键字,以便找到适合您的环境的解决方案。如果你在谷歌上搜索“$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())

相关问题 更多 >