如何使用 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 dataTables 启用服务器端搜索?
如何使用 jQuery DataTables 插件实现服务器端处理?