2013-03-09 95 views
2

我想將JavaScript中的數據傳遞給名爲test.py的python腳本,當單擊該按鈕時。如何讀取JavaScript腳本中調用的python腳本中的數據

該網頁包含以下腳本:

<script> 
$(document).ready(function(){ 
    $("button").click(function(){ 
    $.post("/cgi-bin/test.py", 
    { name: "Zara" }; 
    }); 
    }); 
}); 
</script> 

<button type="submit">Run</button> 

下面是在網頁的同一臺服務器運行test.py:

#!/usr/python 
print('Content-Type: text/html; charset=utf-8\n') 
import sys 
file = open('/var/www/cgi-bin/temp.txt','w') 
file.write(sys.argv[1]) 
file.close() 

我預計TEMP.TXT包含名稱Zara。但temp.txt是空的。

所以我的問題是:

如何python腳本從JavaScript獲取參數的名字嗎? 我可以使用sys.argv或我需要另一個python庫嗎?

+0

嘗試運行可執行文件的Python 'C:\ python27 \ python.exe' 在Windows上,'/ CGI -bin/test.py'作爲第一個參數和你需要作爲下一個參數發送給python腳本的參數。那麼你應該可以在你的py腳本中使用sys.argv – 2013-03-09 21:17:48

+0

謝謝,但是再次閱讀這個問題,我認爲這不太清楚。 test.py是一個在網頁的同一服務器上運行的python腳本。我將在問題中添加test.py。 – danielmsd 2013-03-09 22:15:11

回答

2

的JavaScript發送常規HTTP POST請求和Python腳本可以解析它作爲一個regular CGI script

#!/usr/python 
import cgi 
print('Content-Type: text/html; charset=utf-8\n') 
form = cgi.FieldStorage() 

if 'name' in form: 
    with open('/var/www/cgi-bin/temp.txt','w') as file: 
     file.write(form['name']) 
+1

謝謝,但我認爲,而不是sys.argv [1],該命令將form.getvalue('名稱'),對不對? – danielmsd 2013-03-10 02:11:16

+0

是的,我犯了一個錯誤:) – izidor 2013-03-10 07:58:41

相關問題