這篇文章主要介紹了編寫Python CGI腳本的教程,CGI是Python和服務(wù)器軟件連接的接口,需要的朋友可以參考下
你是否想使用Python語言創(chuàng)建一個網(wǎng)頁,或者處理用戶從web表單輸入的數(shù)據(jù)?這些任務(wù)可以通過Python CGI(公用網(wǎng)關(guān)接口)腳本以及一個Apache web服務(wù)器實(shí)現(xiàn)。當(dāng)用戶請求一個指定URL或者和網(wǎng)頁交互(比如點(diǎn)擊""提交"按鈕)的時候,CGI腳本就會被web服務(wù)器啟用。CGI腳本調(diào)用執(zhí)行完畢后,它的輸出結(jié)果就會被web服務(wù)器用來創(chuàng)建顯示給用戶的網(wǎng)頁。
配置Apache web服務(wù)器,讓其能運(yùn)行CGI腳本
在這個教程里,我們假設(shè)Apache web服務(wù)器已經(jīng)安裝好,并已運(yùn)行。這篇教程使用的Apache web服務(wù)器(版本2.2.15,用于CentOS發(fā)行版6.5)運(yùn)行在本地主機(jī)(127.0.0.1),并且監(jiān)聽80端口,如下面的Apache指令指定一樣:
代碼如下:
ServerName 127.0.0.1:80
Listen 80
下面舉例中的HTML文件存放在web服務(wù)器上的/var/www/html目錄下,并通過DocumentRoot指令指定(指定網(wǎng)頁文件所在目錄):
代碼如下:
DocumentRoot "/var/www/html"
現(xiàn)在嘗試請求URL:http://localhost/page1.html
這將返回web服務(wù)器中下面文件的內(nèi)容:
代碼如下:
/var/www/html/page1.html
為了啟用CGI腳本,我們必須指定CGI腳本在web服務(wù)器上的位置,需要用到ScriptAlias指令:
復(fù)制代碼 代碼如下:
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
以上指令表明CGI腳本保存在web服務(wù)器的/var/www/cgi-bin目錄,請求URL里包含/cgi-bin/的將會搜索這個目錄下的CGI腳本。
我們必須還要明確CGI腳本在/var/www/cgi-bin目錄下有執(zhí)行權(quán)限,還要指定CGI腳本的文件擴(kuò)展名。使用下面的指令:
?
1 2 3 4 <Directory "/var/www/cgi-bin"> Options +ExecCGI AddHandler cgi-script .py </Directory>下面訪問URL:http://localhost/cgi-bin/myscript-1.py
這將會調(diào)用web服務(wù)器中下面所示腳本:
代碼如下:
/var/www/cgi-bin/myscript-1.py
創(chuàng)建一個CGI腳本
在創(chuàng)建一個Python CGI腳本之前,你需要確認(rèn)你已經(jīng)安裝了Python(這通常是默認(rèn)安裝的,但是安裝版本可能會有所不同)。本篇教程使用的腳本是使用Python版本2.6.6編寫的。你可以通過下面任意一命令(-V和--version參數(shù)將顯示所安裝Python的版本號)檢查Python的版本。
?
1 2 $ python -V $ python --version如果你的Python CGI腳本要用來處理用戶輸入的數(shù)據(jù)(從一個web輸入表單),那么你將需要導(dǎo)入Python cgi模塊。這個模塊可以處理用戶通過web輸入表單輸入的數(shù)據(jù)。你可以在你的腳本中通過下面的語句導(dǎo)入該腳本:
?
1 import cgi你也必須修改Python CGI腳本的執(zhí)行權(quán)限,以防止web服務(wù)器不能調(diào)用。可以通過下面的命令增加執(zhí)行權(quán)限:
?
1 # chmod o+x myscript-1.py新聞熱點(diǎn)
疑難解答
圖片精選