欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

編寫Python CGI腳本的教程

系統(tǒng) 2270 0

你是否想使用Python語言創(chuàng)建一個(gè)網(wǎng)頁,或者處理用戶從web表單輸入的數(shù)據(jù)?這些任務(wù)可以通過Python CGI(公用網(wǎng)關(guān)接口)腳本以及一個(gè)Apache web服務(wù)器實(shí)現(xiàn)。當(dāng)用戶請求一個(gè)指定URL或者和網(wǎng)頁交互(比如點(diǎn)擊""提交"按鈕)的時(shí)候,CGI腳本就會(huì)被web服務(wù)器啟用。CGI腳本調(diào)用執(zhí)行完畢后,它的輸出結(jié)果就會(huì)被web服務(wù)器用來創(chuàng)建顯示給用戶的網(wǎng)頁。
配置Apache web服務(wù)器,讓其能運(yùn)行CGI腳本

在這個(gè)教程里,我們假設(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指令指定一樣:

???

復(fù)制代碼 代碼如下:
ServerName 127.0.0.1:80
??? Listen 80

下面舉例中的HTML文件存放在web服務(wù)器上的/var/www/html目錄下,并通過DocumentRoot指令指定(指定網(wǎng)頁文件所在目錄):

???

復(fù)制代碼 代碼如下:
DocumentRoot "/var/www/html"

現(xiàn)在嘗試請求URL:http://localhost/page1.html

這將返回web服務(wù)器中下面文件的內(nèi)容:

???

復(fù)制代碼 代碼如下:
/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/的將會(huì)搜索這個(gè)目錄下的CGI腳本。

我們必須還要明確CGI腳本在/var/www/cgi-bin目錄下有執(zhí)行權(quán)限,還要指定CGI腳本的文件擴(kuò)展名。使用下面的指令:

            
              
  Options +ExecCGI
  AddHandler cgi-script .py
 
            
          

下面訪問URL:http://localhost/cgi-bin/myscript-1.py

這將會(huì)調(diào)用web服務(wù)器中下面所示腳本:

???

復(fù)制代碼 代碼如下:
/var/www/cgi-bin/myscript-1.py

創(chuàng)建一個(gè)CGI腳本

在創(chuàng)建一個(gè)Python CGI腳本之前,你需要確認(rèn)你已經(jīng)安裝了Python(這通常是默認(rèn)安裝的,但是安裝版本可能會(huì)有所不同)。本篇教程使用的腳本是使用Python版本2.6.6編寫的。你可以通過下面任意一命令(-V和--version參數(shù)將顯示所安裝Python的版本號)檢查Python的版本。

            
 $ python -V
 $ python --version


          

如果你的Python CGI腳本要用來處理用戶輸入的數(shù)據(jù)(從一個(gè)web輸入表單),那么你將需要導(dǎo)入Python cgi模塊。這個(gè)模塊可以處理用戶通過web輸入表單輸入的數(shù)據(jù)。你可以在你的腳本中通過下面的語句導(dǎo)入該腳本:

            
 import cgi


          

你也必須修改Python CGI腳本的執(zhí)行權(quán)限,以防止web服務(wù)器不能調(diào)用。可以通過下面的命令增加執(zhí)行權(quán)限:

            
 # chmod o+x myscript-1.py


          

Python CGI例子

涉及到Python CGI腳本的兩個(gè)方案將會(huì)在下面講述:

  • ??? 使用Python腳本創(chuàng)建一個(gè)網(wǎng)頁
  • ??? 讀取并顯示用戶輸入的數(shù)據(jù),并且在網(wǎng)頁上顯示結(jié)果

注意:Python cgi模塊在方案2中是必需的,因?yàn)檫@涉及到用戶從web表單輸入數(shù)據(jù)。
例子1 :使用Python腳本創(chuàng)建一個(gè)網(wǎng)頁

對于這個(gè)方案,我們將通過創(chuàng)建包含一個(gè)單一提交按鈕的網(wǎng)頁/var/www/html/page1.html開始。

            

Test Page 1

當(dāng)"提交"按鈕被點(diǎn)擊,/var/www/cgi-bin/myscript-1.py腳本將被調(diào)用(通過action參數(shù)指定)。通過設(shè)置方法參數(shù)為"get"來指定一個(gè)"GET"請求,服務(wù)器將會(huì)返回指定的網(wǎng)頁。/var/www/html/page1.html在瀏覽器中的顯示情況如下:

編寫Python CGI腳本的教程_第1張圖片

/var/www/cgi-bin/myscript-1.py的內(nèi)容如下:

            
 #!/usr/bin/python
 print "Content-Type: text/html"
 print ""
 print ""
 print "
            

CGI Script Output

" print "

This page was generated by a Python CGI script.

" print ""

第一行聲明表示這是使用 /usr/bin/python命令運(yùn)行的Python腳本。"Content-Type: text/html"打印語句是必需的,這是為了讓web服務(wù)器知道接受自CGI腳本的輸出類型。其余的語句用來輸出HTML格式的其余網(wǎng)頁內(nèi)容。

當(dāng)"Submit"按鈕點(diǎn)擊,下面的網(wǎng)頁將返回:

編寫Python CGI腳本的教程_第2張圖片

這個(gè)例子的要點(diǎn)是你可以決定哪些信息可以被CGI腳本返回。這可能包括日志文件的內(nèi)容,當(dāng)前登陸用戶的列表,或者今天的日期。在你處理時(shí)擁有所有python庫的可能性是無窮無盡的。
例子2:讀取并顯示用戶輸入的數(shù)據(jù),并將結(jié)果顯示在網(wǎng)頁上

對于這個(gè)方案,我們將通過創(chuàng)建一個(gè)含有三個(gè)輸入域和一個(gè)提交按鈕的網(wǎng)頁/var/www/html/page2.html開始。

            

Test Page 2

First Name:
Last Name:
Position:

當(dāng)"Submit"按鈕點(diǎn)擊,/var/www/cgi-bin/myscript-2.py腳本將被執(zhí)行(通過action參數(shù)指定)。/var/www//html/page2.html顯示在web瀏覽器中的圖片如下所示(注意,三個(gè)輸入域已經(jīng)被填寫好了):

編寫Python CGI腳本的教程_第3張圖片

/var/www/cgi-bin/myscript-2.py的內(nèi)容如下:

            
 #!/usr/bin/python
 import cgi
 form = cgi.FieldStorage()
 print "Content-Type: text/html"
 print ""
 print ""
 print "
            

CGI Script Output

" print "

" print "The user entered data are:
" print " First Name: " + form["firstName"].value + "
" print " Last Name: " + form["lastName"].value + "
" print " Position: " + form["position"].value + "
" print "

" print ""

正如前面提到,import cgi語句用來確保能夠處理用戶通過web輸入表單輸入的數(shù)據(jù)。web輸入表單被封裝在一個(gè)表單對象中,叫做cgi.FieldStorage對象。一旦開始輸出,"Content-Type: text/html"是必需的,因?yàn)閣eb服務(wù)器需要知道接受自CGI腳本的輸出格式。用戶輸入的數(shù)據(jù)在包含form["firstName"].value,form["lastName"].value,和 form["position"].value的語句中可以得到。那些中括號中的名稱和/var/www/html/page2.html文本輸入域中定義的名稱參數(shù)一致。

當(dāng)網(wǎng)頁上的"Submit"按鈕被點(diǎn)擊,下面的網(wǎng)頁將被返回。

編寫Python CGI腳本的教程_第4張圖片

這個(gè)例子的要點(diǎn)就是你可以很容易地讀取并顯示用戶在web表單上輸入的數(shù)據(jù)。除了以字符串的方式處理數(shù)據(jù),你也可以用Python將用戶輸入的數(shù)據(jù)轉(zhuǎn)化為可用于數(shù)值計(jì)算的數(shù)字。


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 亚洲二区视频 | 欧美一区二区三区免费观看视频 | 免费成人在线网站 | 亚洲伊人网站 | 奇米影视在线播放 | 日韩v在线 | 日日碰| 亚洲高清在线视频 | 国产精品小黄鸭一区二区三区 | 两性欧美 | jizz国产丝袜18老师女人 | 99国产精品久久久久久久成人热 | 欧美综合亚洲 | 九九在线精品视频播放 | 色a综合| 国产欧美曰韩一区二区三区 | 色呦呦在线观看视频 | 久久草在线视频 | 视频一区 精品自拍 | 韩国三级bd高清中字木鱼天 | 91视频完整版 | www.奇米影视.com | 欧美日韩xxx| 色哟哟哟在线观看www | 成人免费看黄网址 | 国产精品成人va在线观看入口 | 亚洲欧洲精品一区二区 | 久草在线网址 | 亚洲精品免费网站 | 亚洲欧美综合精品久久成人 | 中文字幕网在线 | 日本三日本三级香港三级 | 奇米影视在线观看 | 香蕉视频日本 | 国产精品www视频免费看 | 欧美日韩在线视频一区 | 亚洲成人一区 | 亚洲一区在线观 | 午夜精品久久久久久久90蜜桃 | 浮力影院在线观看 | 波多野结衣一区二区三区在线观看 |