在IIS服務(wù)器上以CGI方式運行Python腳本的教程
由于接觸到Python Web開發(fā),正好把最簡單的CGI方式研究了一下,話說在Windows下配置Python的Web開發(fā)還真的蠻麻煩的,Linux下配置倒挺容易,正好微軟有技術(shù)文章《Using Python Scripts with IIS》介紹了這些內(nèi)容,此文介紹了兩種方法,一是使用ASP引擎來運行Python腳本,這個可能需要用到ActivePython,當(dāng)然ASP技術(shù)已經(jīng)過時了,我今天就簡單介紹下CGI模塊運行方式。
編寫簡單的支持CGI的Python腳本(本文介紹3.2版本的Python):
print("Status: 200 OK") print("Content-type: text/html") print() # 打印一行空白行,用于分隔HTTP Header和正文 print("<h1>Hello World!</h1>")
這樣就可以了,大家可以猜出CGI是將標(biāo)準(zhǔn)輸出流重新定向到HTTP輸出流來實現(xiàn)網(wǎng)頁或者數(shù)據(jù)傳輸?shù)摹?/p>
當(dāng)然這個在IIS中是不能直接運行的,我們需要配置一下,打開Internet 信息服務(wù)(IIS)管理器界面,選擇“處理程序映射”。
在接下來出現(xiàn)的界面右側(cè)選擇“添加模塊映射”。
IIS7添加模塊映射
假設(shè)我們的Python 3.2安裝于C:\Python32,那么可以向下圖這樣填寫:
然后點擊確定,在接下來出現(xiàn)的對話框選擇“是”。
好了,我們的配置完成了,重啟一下IIS,然后趕快試試剛才的代碼吧。可能有人會抱怨,用CGI編寫網(wǎng)頁一旦報錯調(diào)試會比較麻煩,比如報下面的錯誤:
HTTP 錯誤 502.2 - Bad Gateway
指定的 CGI 應(yīng)用程序由于未返回完整的一組 HTTP 頭而產(chǎn)生錯誤行為。它實際返回的頭是“Traceback (most recent call last): File "E:\projects\test.py", line 3, in <module> 1/0 ZeroDivisionError: division 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),網(wǎng)上有很多此方面的介紹,我就不多說了,Enjoy it!
相關(guān)文章
Python tkinter模塊彈出窗口及傳值回到主窗口操作詳解
這篇文章主要介紹了Python tkinter模塊彈出窗口及傳值回到主窗口操作,結(jié)合實例形式分析了Python使用tkinter模塊實現(xiàn)的彈出窗口及參數(shù)傳遞相關(guān)操作技巧,需要的朋友可以參考下2017-07-07在Ubuntu系統(tǒng)中運行python代碼的幾個步驟
項目中需要在Linux上運行自己寫的python腳本,特此記錄一下操作流程,整個流程比較簡單,下面這篇文章主要給大家介紹了關(guān)于在Ubuntu系統(tǒng)中運行python代碼的幾個步驟,需要的朋友可以參考下2023-12-12python實現(xiàn)提取COCO,VOC數(shù)據(jù)集中特定的類
這篇文章主要介紹了python實現(xiàn)提取COCO,VOC數(shù)據(jù)集中特定的類,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03使用TensorFlow搭建一個全連接神經(jīng)網(wǎng)絡(luò)教程
今天小編就為大家分享一篇使用TensorFlow搭建一個全連接神經(jīng)網(wǎng)絡(luò)教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02Python數(shù)據(jù)分析之繪制ppi-cpi剪刀差圖形
這篇文章主要介紹了Python數(shù)據(jù)分析之繪制ppi-cpi剪刀差圖形,ppi-cp剪刀差是通過這個指標(biāo)可以了解當(dāng)前的經(jīng)濟(jì)運行狀況,下文更多詳細(xì)內(nèi)容介紹需要的小伙伴可以參考一下2022-05-05python OpenCV的imread不能讀取中文路徑問題及解決
這篇文章主要介紹了python OpenCV的imread不能讀取中文路徑問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07