【问题标题】:run python script using ajax使用ajax运行python脚本
【发布时间】:2014-10-19 13:09:29
【问题描述】:

我有从数据库导出数据的 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 框架来为网站提供服务?
  • 我正在使用 Raspberry Pi 运行我自己的 Web 服务器。我想执行 python 脚本而不需要刷新页面。正如我尝试使用表单通过 php 执行 python 脚本一样。
  • 但是你没有回答这个问题。您的网络服务器正在运行什么?
  • 它正在使用 Apache 运行 php

标签: javascript jquery python ajax


【解决方案1】:

如果您已有网站

您不能直接从网页执行服务器端 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 ]

您可以编写自己的网络服务器软件来执行此操作,但如果您真的只有一个 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

如果您没有网络服务器,而只想提供 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())

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-15
    • 2017-07-30
    • 2014-03-15
    • 2018-03-14
    相关资源
    最近更新 更多