這篇文章主要介紹了在IIS伺服器上以CGI方式運行Python腳本的教程,雖然IIS的性能並不理想...需要的朋友可以參考下
由於接觸到Python Web開發,剛好把最簡單的CGI方式研究了一下,話說在Windows下配置Python的Web開發還真的蠻麻煩的,Linux下配置倒挺容易,正好微軟有技術文章《Using Python Scripts with IIS》介紹了這些內容,此文介紹了兩種方法,一是使用ASP引擎來運行Python腳本,這個可能需要用到ActivePython,當然ASP技術已經過時了,我今天就簡單介紹下CGI模組運作方式。
編寫簡單的支援CGI的Python腳本(本文介紹3.2版本的Python):
print("Status: 200 OK") print("Content-type: text/html") print() # 打印一行空白行,用于分隔HTTP Header和正文 print("<h1>Hello World!</h1>")
這樣就可以了,大家可以猜出CGI是將標準輸出流重新定向到HTTP輸出流來實現網頁或資料傳輸的。
當然這個在IIS中是不能直接運作的,我們需要設定一下,開啟Internet 資訊服務(IIS)管理器介面,選擇「處理程序映射」。
在接下來出現的介面右側選擇「新增模組映射」。
IIS7新增模組映射
假設我們的Python 3.2安裝於C:\Python32,那麼可以向下圖表這樣填寫:
然後點選確定,在接下來出現的對話方塊中選擇「是」。
好了,我們的設定完成了,重新啟動IIS,然後趕快試試剛才的程式碼吧。有人可能會抱怨,用CGI編寫網頁一旦報錯調試會比較麻煩,例如報下面的錯誤:
HTTP 錯誤502.2 - Bad Gateway
指定的CGI 應用程式由於未返回完整的一組HTTP 頭而產生錯誤行為。它實際回傳的頭是「Traceback (most recent call last): File "E:\projects\test.py", line 3, in 4225fa317875f3e92281a7b1a5733569 1/0 ZeropisionError: pision by zero 」。
其實我們只需要在最開始引入import cgitb; cgitb.enable()就可以了,就像下面這樣:
import cgitb; cgitb.enable() print("Status: 200 OK") print("Content-type: text/html") print() # 打印一行空白行,用于分隔HTTP Header和正文 print("<h1>Hello World!</h1>")
這樣一旦出錯,就會以友好的方式將錯誤輸出來。
對於表單的處理,可以參考import cgi模組(cgi.FieldStorage),網路上有很多此方面的介紹,我就不多說了,Enjoy it!
【相關推薦】
以上是分享在IIS上用CGI方式運行Python腳本的實例教程的詳細內容。更多資訊請關注PHP中文網其他相關文章!