首頁  >  文章  >  後端開發  >  分享在IIS上用CGI方式運行Python腳本的實例教程

分享在IIS上用CGI方式運行Python腳本的實例教程

零下一度
零下一度原創
2017-05-19 13:05:122698瀏覽

這篇文章主要介紹了在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)管理器介面,選擇「處理程序映射」。

2015425161112268.png (373×139)

在接下來出現的介面右側選擇「新增模組映射」。

IIS7新增模組映射

2015425161152223.png (572×250)

假設我們的Python 3.2安裝於C:\Python32,那麼可以向下圖表這樣填寫:

2015425161216044.png (397×318)

然後點選確定,在接下來出現的對話方塊中選擇「是」。

2015425161237176.png (416×161)

好了,我們的設定完成了,重新啟動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>")

這樣一旦出錯,就會以友好的方式將錯誤輸出來。

2015425161301420.png (610×391)

對於表單的處理,可以參考import cgi模組(cgi.FieldStorage),網路上有很多此方面的介紹,我就不多說了,Enjoy it!

【相關推薦】

1. #cgi向文字或資料庫寫入資料實例代碼

2 . 什麼是CGI?詳細介紹Python CGI程式設計

3. 使用CGI模組建立簡單web頁面教學實例

4. 分享一個PythonCGI程式設計的實例教學

5. 詳解XML與現代CGI應用程式的範例程式碼

6. FastCGI 進程意外退出造成500錯誤

以上是分享在IIS上用CGI方式運行Python腳本的實例教程的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn