在之前的文章《python能做什嗎?Python實際應用情境解析》中,簡要的介紹了
Python編程的作用和好處,隨著知識點的延伸,我們來簡單介紹下什麼是
Python CGI編程。
如果想要瞭解什麼是Python CGI編程,得Crowdsourced Security Testing道什麼是CGI
CGI 目前由NCSA維護,NCSA定義CGI如下:
CGI(Common Gateway Interface),通用閘道介面,它是一段程式,運行在伺服器上如:HTTP伺服器,提供同用戶端HTML頁面的介面。
網頁瀏覽
為了更好的瞭解CGI是如何工作的,我們可以從在網頁上點擊一個連結或URL的流程:
1、使用你的瀏覽器訪問URL並串連到HTTP 網頁伺服器。
2、Web伺服器接收到請求資訊後會解析URL,並尋找訪問的檔案在伺服器上是否存在,如果存在返迴文件的內容,否則返回錯誤資訊。
3、瀏覽器從伺服器上接收資訊,並顯示接收的檔案或者錯誤資訊。
CGI程式可以是Python指令碼,PERL指令碼,SHELL指令碼,C或者C++程式等。
CGI架構圖
第一個Python CGI編程
我們使用Python建立第一個CGI編程,檔案名稱為hello.py,檔案位於/var/www/cgi-bin目錄中,內容如下:
#!/usr/bin/python# -*- coding: UTF-8 -*-print "Content-type:text/html"print # 空行,告訴伺服器結束頭部print '<html>'print '<head>'print '<meta charset="utf-8">'print '<title>Hello World - 我的第一個 CGI 程式!</title>'print '</head>'print '<body>'print '<h2>Hello World! 我是來自php中文網的第一CGI程式</h2>'print '</body>'print '</html>'
檔案儲存後修改 hello.py,修改檔案許可權為 755:
chmod 755 hello.py
以上程式在瀏覽器訪問 http://localhost/cgi-bin/hello.py 顯示結果如下:
Hello World! 我是來自php中文網的第一CGI程式
這個的hello.py指令碼是一個簡單的Python指令碼,指令碼第一行的輸出內容"Content-type:text/html"發送到瀏覽器並告知瀏覽器顯示的內容類型為"text/html"。
用 print 輸出一個空行用於告訴伺服器結束頭部資訊。