如何使用 jQuery 执行服务器端 Python 脚本?

Posted

技术标签:

【中文标题】如何使用 jQuery 执行服务器端 Python 脚本?【英文标题】:How do you execute a server-side Python script using jQuery? 【发布时间】:2011-01-13 04:19:29 【问题描述】:

我有一个非常简单的 Python 文件,叫做 python1.py,其内容是:

f = open('C:\\Temp\\test.txt', 'w')
f.write('Succeeded')
f.close()

我希望从 javascript 执行这个,像这样:

jQuery.ajax(
   type: "POST",
   url: "/cgi-bin/python1.py",
   success: function (msg) 
       alert("Data Saved: " + msg);
   
);

但是,所发生的只是我收到一条警报,显示 Python 脚本的内容。文件 C:\Temp\test.txt 没有被创建,所以很明显 Python 没有被执行。

我如何说服代码执行 Python 脚本而不是仅仅阅读它?

【问题讨论】:

【参考方案1】:

您也可以使用开源项目 Pico。这是从客户端 Javascript 调用服务器端 Python 代码的一种非常优雅的方式。

作者在这里提供了一些简单的例子https://github.com/fergalwalsh/pico/wiki/Example-1:-Hello-World

【讨论】:

有什么方法可以在 GAE 应用中使用 PICO? 在尝试让 Apache 和 mod_python 工作时,我(幸运的是)偶然发现了这篇文章,在那里我能够让我的 JS 和 Python 立即相互交谈。皮克摇滚!非常容易设置和实施。【参考方案2】:

如果您的脚本如此简单,那么您最好在服务器端使用 CGI,而不是像其他人建议的那样使用 mod_python 或 mod_wsgi。有关如何使用 Python 和简单脚本示例为 CGI 设置 Apache 的详细信息,请参阅:

http://webpython.codepoint.net/cgi_tutorial

【讨论】:

为什么 CGI 比 mod_python 更好?【参考方案3】:

您只需要配置您的网络服务器以执行您的 *.py 脚本,而不是将它们作为纯文本提供。

如果您使用 Apache 作为 Web 服务器,则需要启用 mod_python 或 mod_wsgi。


编辑:

由于您使用的是 Apache,您可能需要查看以下文章,该文章简要介绍了如何设置 mod_python 模块:

A Brief Introduction to Apache's mod_python Module

【讨论】:

【参考方案4】:

您是否能够直接从浏览器执行脚本。这看起来更像是一个网络服务器配置问题,而不是 jquery 的

【讨论】:

不行,我不能直接执行。我正在使用 Apache 2.2。任何想法我需要改变什么设置? 好的,我发现了错误:我在 httpd.conf 文件中使用了 Alias 而不是 ScriptAlias。我现在返回 Python 文件的输出,但它仍然不会创建临时文件。我将把它留给另一个问题

以上是关于如何使用 jQuery 执行服务器端 Python 脚本?的主要内容,如果未能解决你的问题,请参考以下文章

如何同时使用 jquery 和服务器端验证客户端?

如何使用发布请求将服务器端 jquery 数据表数据发送到服务器

如何使用 jQuery dataTables 启用服务器端搜索?

如何使用 jQuery DataTables 插件实现服务器端处理?

如何在没有 Ajax 的 JQuery DataTables 中使用服务器端处理

使用 Jquery $.ajax 在 Flask 上调用服务器端函数 [重复]