2013-05-04 87 views
0

我想從我的lighttpd服務器運行一個簡單的Python腳本。 HTML代碼是:從lighttpd運行python腳本 - Firefox要求保存文件

<html> 
<title>Interactive page</title> 
<body> 
    <form method=POST action="cgi-bin/cgi101.py"> 
     <P><B>Entery your name: </B> 
     <P><input type=text name=user> 
     <P><input type=submit> 
    </form> 
</body> 
</html> 

我的Python腳本是:

#!/usr/bin/python 
import cgi 
form = cgi.FieldStorage() 
print('Content type:text/html \n') 
print('<title>Reply Page</title>') 
if not 'user' in form: 
    print('<h1>who are you</h1>') 
else: 
    print(cgi.escape(form['user'].value)) 

所以我的問題是,我能夠加載HTML頁面,然後我點擊提交查詢? Firefox詢問「你已經選擇從本地主機打開cgi101.py」並詢問Firefox應該如何處理這個文件以及我是否想保存它。它不應該只是在Firefox中打開並運行Python腳本,而不是要求我保存Python腳本嗎?

回答

0

昨天我剛剛學習編程Python書時遇到了同樣的問題。我發現答案之後是你失去了一個重要的一步。那是你失去了一個webserver.py文件,它實現了一個HTTP Web服務器在Python中知道如何運行用Python編碼的服務器端CGI腳本;提供當前工作目錄中的文件和腳本。以下是代碼:

`import os,sys 
from http.server import HTTPServer,CGIHTTPRequestHandler 

webdir = '.' 
port = 80 

os.chdir(webdir) 
srvraddr = ("",port) 
srvrobj = HTTPServer(srvraddr,CGIHTTPRequestHandler) 
srvrobj.serve_forever()` 

您可以再試一次!

0

找到解決方案 添加chmod + x文件名使其可執行。