Python(27)使用python的http,cgi模組實現一個簡單的web服務
阿新 • • 發佈:2019-02-03
CGI(Common Gateway Interface)即通用閘道器介面,按百度百科對其的解釋是:
CGI(Common Gateway Interface) 是WWW技術中最重要的技術之一,有著不可替代的重要地位。CGI是外部應用程式(CGI程式)與Web伺服器之間的介面標準,是在CGI程式和Web伺服器之間傳遞資訊的規程。CGI規範允許Web伺服器執行外部程式,並將它們的輸出傳送給Web瀏覽器,CGI將Web的一組簡單的靜態超媒體文件變成一個完整的新的互動式媒體。 Common Gateway Interface,簡稱CGI。在物理上是一段程式,執行在伺服器上,提供同客戶端HTML頁面的介面。這樣說大概還不好理解。那麼我們看一個實際例子:現在的個人主頁上大部分都有一個留言本。留言本的工作是這樣的:先由使用者在客戶端輸入一些資訊,如名字之類的東西。接著使用者按一下“留言”(到目前為止工作都在客戶端),瀏覽器把這些資訊傳送到伺服器的CGI目錄下特定的cgi程式中,於是cgi程式在伺服器上按照預定的方法進行處理。在本例中就是把使用者提交的資訊存入指定的檔案中。然後cgi程式給客戶端傳送一個資訊,表示請求的任務已經結束。此時使用者在瀏覽器裡將看到“留言結束”的字樣。整個過程結束。
而Python的cgi模組定義了使用Python編寫CGI指令碼的實用工具!
結構目錄
index.html程式碼
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>http,cgi模組test</title> </head> <body> <form action="./cgi-bin/index.py" method="get"> <label>使用者名稱: <input type="text" name="username"></label><br> 密碼: <input type="password" name="password"><br> <!-- <input type="hidden" name="id" value="20"> --> <input type="submit"> </form> </body> </html>
server.py程式碼
from http.server import HTTPServer, CGIHTTPRequestHandler
#埠號
port = 8080
#使用http.server模組開啟一個web服務
httpd = HTTPServer(('', port), CGIHTTPRequestHandler)
print("Starting simple_httpd on port: " + str(httpd.server_port))
httpd.serve_forever()
index.py程式碼
import cgi,cgitb cgitb.enable() print("Content-Type: text/html") # HTML is following print() # blank line, end of headers #使用cgi獲取web form提交過來的資料 fs = cgi.FieldStorage() inputs = {} #將cgi從web獲取到的資料存入字典inputs for key in fs.keys(): inputs[key] = fs[key].value #for in 迴圈列印字典inputs中的資料 for k,v in inputs.items(): print(k,'-->',v) print('<br/>')