2010-02-04 153 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