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

How do you execute a server-side Python script using jQuery?

提问人:Charles Anderson 提问时间:2/5/2010 最后编辑:Charles Anderson 更新时间:8/17/2011 访问量:28765

问:

我有一个非常简单的 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 脚本,而不仅仅是读取它?

JavaScript的 jQuery的 阿贾克斯

评论


答:

4赞 Vinodh Ramasubramanian 2/5/2010 #1

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

评论

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

您只需将 Web 服务器配置为执行 *.py 脚本,而不是以纯文本形式提供它们。

如果您使用 Apache 作为 Web 服务器,则需要启用mod_pythonmod_wsgi


编辑:

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

1赞 Graham Dumpleton 2/5/2010 #3

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

http://webpython.codepoint.net/cgi_tutorial

评论

1赞 lynxoid 1/19/2013
为什么CGI优于mod_python?
7赞 Cathal 8/17/2011 #4

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

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

评论

0赞 Simon K Bhatta4ya 9/16/2013
有什么方法可以在 GAE 应用程序中使用 PICO 吗?
0赞 Evan R 4/30/2014
在试图让Apache和mod_python工作许多令人头疼之后,我(幸运的是)偶然发现了这篇文章,在那里我能够让我的JS和Python在短时间内相互通信。皮克摇滚!非常容易设置和实施。