CGI
CGI 目前由NCSA維護(hù),NCSA定義CGI如下:
CGI(Common Gateway Interface),通用網(wǎng)關(guān)接口,它是一段程序,運(yùn)行在服務(wù)器上如:HTTP服務(wù)器,提供同客戶端HTML頁面的接口。
CGI程序可以是Python腳本、Perl腳本、Shell腳本、C或者C++程序等。
服務(wù)器
在你進(jìn)行CGI編程前,確保您的Web服務(wù)器支持CGI及已經(jīng)配置了CGI的處理程序。
所有的HTTP服務(wù)器執(zhí)行CGI程序都保存在一個(gè)預(yù)先配置的目錄。這個(gè)目錄被稱為CGI目錄,并按照慣例,它被命名為/var/www/cgi-bin目錄。
CGI文件的擴(kuò)展名為.cgi,python也可以使用.py擴(kuò)展名。
默認(rèn)情況下,Linux服務(wù)器配置運(yùn)行的cgi-bin目錄中為/var/www。
如果想指定的其他運(yùn)行CGI腳本的目錄,可以修改httpd.conf配置文件,如下所示:
<Directory"/var/www/cgi-bin">Allow Override NoneOptions ExecCGIOrder allow,denyAllow from all</Directory><Directory"/var/www/cgi-bin">Options All</Directory>
程序
使用Python創(chuàng)建第一個(gè)CGI程序,文件名為hello.py,文件位于/var/www/cgi-bin目錄中,內(nèi)容如下,修改文件的權(quán)限為755:
#!/usr/bin/env pythonprint("Content-type:text/html/r/n/r/n")print("</html>") print("<html>")print("<head>")print("")print("</head>")print("<body>")print("<h2>Hello World! This is my first CGI program")print("</body>")print("</html>")以上程序在瀏覽器訪問顯示結(jié)果如下:
1、 Hello World! This is my first CGI program
這個(gè)的hello.py腳本是一個(gè)簡(jiǎn)單的Python腳本,腳本第一的輸出內(nèi)容"Content-type:text/html/r/n/r/n"發(fā)送到瀏覽器并告知瀏覽器顯示的內(nèi)容類型為"text/html"。
環(huán)境變量
所有的CGI程序都接收以下的環(huán)境變量,這些變量在CGI程序中發(fā)揮了重要的作用:

以下是一個(gè)簡(jiǎn)單的CGI腳本輸出CGI的環(huán)境變量:
#!/usr/bin/pythonimport osprint"Content-type:text/html/r/n/r/n"print"Environment"for param in os.environ.keys():print"%20s:%s</br>" %(param,os.environ[param])
特點(diǎn)
優(yōu)點(diǎn)
簡(jiǎn)單:Python是一種代表簡(jiǎn)單主義思想的語言。閱讀一個(gè)良好的Python程序就感覺像是在讀英語一樣。它使你能夠?qū)W⒂诮鉀Q問題而不是去搞明白語言本身。
易學(xué):Python極其容易上手,因?yàn)镻ython有極其簡(jiǎn)單的說明文檔 。
速度快:Python 的底層是用 C 語言寫的,很多標(biāo)準(zhǔn)庫和第三方庫也都是用 C 寫的,運(yùn)行速度非常快。
免費(fèi)、開源:Python是FLOSS(自由/開放源碼軟件)之一。使用者可以自由地發(fā)布這個(gè)軟件的拷貝、閱讀它的源代碼、對(duì)它做改動(dòng)、把它的一部分用于新的自由軟件中。FLOSS是基于一個(gè)團(tuán)體分享知識(shí)的概念。
新聞熱點(diǎn)
疑難解答
圖片精選