2010-02-04 120 views
10

我有一个非常简单的Python文件,名为python1.py,其内容是:出现这种情况是如何使用jQuery执行服务器端Python脚本?

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

然而,所有:

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

我想从JavaScript执行此,像这样我得到一个提醒,告诉我Python脚本的内容。文件C:\ Temp \ test.txt没有被创建,所以显然Python没有被执行。

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

回答

4

您是否可以直接从浏览器执行脚本。这看起来更像是一个web服务器配置问题比jquery的

+0

一些简单的例子不,我不能直接执行它。我使用的是Apache 2.2。任何想法什么设置我需要改变? – 2010-02-04 17:09:49

+0

查看答案@Daniel – 2010-02-04 17:34:56

+0

好的,我发现了这个错误:我在httpd.conf文件中使用了别名,而不是ScriptAlias。我现在返回Python文件的输出,但它仍然不会创建临时文件。我会把它留给另一个问题 – 2010-02-04 17:36:53

7

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

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


编辑:

由于您使用的是Apache正在使用,您可能要检查下面的文章,其中简要介绍了如何设置mod_python的模块:

1

如果你的脚本很简单,那么你最好在服务器上使用CGI如其他人所建议的,而不是mod_python或mod_wsgi。有关如何设置Apache与Python和简单的脚本示例CGI详情请见:

http://webpython.codepoint.net/cgi_tutorial

+1

为什么CGI比mod_python更好? – lynxoid 2013-01-18 16:41:14

7

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

笔者在这里提供https://github.com/fergalwalsh/pico/wiki/Example-1:-Hello-World

+0

PICO可以用于GAE应用程序吗? – 2013-09-16 13:34:42

+0

经过许多令人头疼的事情,试图让Apache和mod_python正常工作,幸运的是,我偶然发现了这篇文章,在那里我可以让JS和Python在没有时间的情况下相互交谈。皮克岩石!非常容易设置和实施。 – 2014-04-30 04:02:35