<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        分享一個PythonCGI編程的實例教程

        來源:懂視網 責編:小采 時間:2020-11-27 14:14:50
        文檔

        分享一個PythonCGI編程的實例教程

        分享一個PythonCGI編程的實例教程:最近一周的時間在網上繼續學習Python,接觸到了Python的CGI編程,CGI的官方定義如下: CGI(Common Gateway Interface),通用網關接口,它是一段程序,運行在服務器上如:HTTP服務器,提供同客戶端HTML頁面的接口。我比較感興趣的是Python CGI能寫出多
        推薦度:
        導讀分享一個PythonCGI編程的實例教程:最近一周的時間在網上繼續學習Python,接觸到了Python的CGI編程,CGI的官方定義如下: CGI(Common Gateway Interface),通用網關接口,它是一段程序,運行在服務器上如:HTTP服務器,提供同客戶端HTML頁面的接口。我比較感興趣的是Python CGI能寫出多
        最近一周的時間在網上繼續學習Python,接觸到了Python的CGI編程,CGI的官方定義如下:

        CGI(Common Gateway Interface),通用網關接口,它是一段程序,運行在服務器上如:HTTP服務器,提供同客戶端HTML頁面的接口。

        我比較感興趣的是Python CGI能寫出多厲害的應用程序,所以我就直接開始學習了Python的編程部分,首先要配置Web服務器支持CGI,我電腦上已經裝好了wamp集成開發環境,所以就不用裝Apache了,網上有很多博文都是講的如何在Apache下配置,而且是Linux環境下的,不過我想配置文件內容應該不會有很大變化,于是我就開始了我的鼓搗之旅。事實證明用windows來做開發真的是個坑。

        根據在線學習網站Python CGI的說法,要先設置好CGI目錄,在Apache的配置文件中修改httpd.conf

        ScriptAlias /cgi-bin/ /var/www/cgi-bin/

        再修改httpd.conf文件如下:

        <Directory "/var/www/cgi-bin">
         AllowOverride None
         Options +ExecCGI
         Order allow,deny
         Allow from all</Directory>

        然后在AddHandler 中添加 .py 后綴,這樣我們就可以訪問 .py 結尾的 python 腳本文件:

        做完這一切之后重新啟動服務器(Apache/Wamp),編寫第一個CGI程序,代碼如下:

        test1.py

        #!D:Python27python # -*- coding: UTF-8 -*-print "Content-type:text/html
        
        "print '<html>'print '<head>'print '<title>Hello Word - First CGI Program</title>'print '</head>'print '<body>'print '<h2>Hello Word! This is my first CGI program</h2>'print '</body>'print '</html>'

        第一行的內容指定了腳本解釋器的位置,可以根據自己安裝的路徑更改

        然后在瀏覽器地址欄輸入:http://localhost/cgi-bin/test1.py

        然后瀏覽器訪問顯示結果如下:

        Hello Word! This is my first CGI program

        沒有什么問題

        然后編寫第二個程序:hello_get.py

        #!D:Python27python# -*- coding: UTF-8 -*-# CGI處理模塊import cgi, cgitb 
        # 創建 FieldStorage 的實例化form = cgi.FieldStorage() # 獲取數據first_name = form.getvalue('first_name')last_name = form.getvalue('last_name')print "Content-type:text/html
        
        "print "<html>"print "<head>"print "<title>Hello - Second CGI Program</title>"print "</head>"print "<body>"print "<h2>Hello %s %s</h2>" % (first_name, last_name)print "</body>"print "</html>"

        在瀏覽器輸入localhost/cgi-bin/hello_get.py?first_name=ZARA&last_name=ALI

        然而并沒有像網站上說的那樣輸出

        Hello ZARA ALI

        而是出現了以下的錯誤提示


        于是我就納悶了,配置環境一樣,代碼都是一模一樣,到底是哪里出問題了呢,然后我就百度Windows下Apache CGI配置方法,然而出來的都是Linux下的配置方法,于是沒辦法,我選擇了重裝wamp然后重新配置CGI環境,然后我依次將上面的每一步又都做了一遍,然后將網站上的代碼復制到編輯器然后再次在瀏覽器中輸入:

        http://localhost/cgi-bin/hello_get.py?first_name=ZARA&last_name=ALI

        結果仍然是上面那一串錯誤提示,于是我仔細看了一下這個提示,大致意思就是:

        服務器內部錯誤

        服務器發生了一個內部錯誤或者由于錯誤配置從而無法完成我的請求

        請郵件聯系服務器管理員告知這個錯誤以及出現這個錯誤之前你做了什么操作

        想了解更多信息請查閱服務器錯誤日志

        因為這個于是我堅定不移地相信是因為我把服務器配置錯了,正當我一籌莫展的時候,我突然想到,我之前沒有修改任何配置文件時,第一個程序test1都能正確運行,會不會這個錯誤與配置文件無關呢,于是我試著把test1的第一行聲明解釋器路徑的那一條語句去掉了,再次運行,瀏覽器中出現了同樣的錯誤


        所以我大感欣慰,因為這證實了我的猜想,和服務器的配置沒有關系,是因為我的腳本文件有錯,所以服務器無法回應請求,既然如此,那hello_get.py的錯誤也同樣如此了,那么問題就簡單多了,只要檢查代碼有沒有寫錯的地方就行了。

        這里我要反思自己的一個陋習:當我嘗試著運行網站上的一個例程的時候,我總是一個ctrl C然后ctrl V復制粘貼到自己的編輯器中,簡單一點的程序還好,復雜一點的,代碼塊很多的程序,這樣的習慣帶來的后果就是:縮進格式不正確,然后運行錯誤,這個問題在Python中體現得尤其明顯,因為Python對縮進要求真的非常嚴格,所以千萬不能復制粘貼Python程序到自己的程序中,一定要一個代碼一個代碼的敲,確保縮進在自己的控制之下。

        我說到這里明白人已經看出我hello_get.py文件的錯誤之處在哪里了——就是沒有自己動手敲,其實我之前也試過在網上copy C語言代碼到VC++6.0里面,表面看上去語法完全正確,但是下面總有一個錯誤,提示也是看不懂的,所以在遇到這種情況的時候我才能想到可能是這個原因。這也警示大家,代碼一定要自己動手一個字母一個符號地敲進你的程序當中,否則就會出現難以發覺的錯誤。

        最后說說如何正確配置Windows下的wamp(Apache)才能正確執行CGI腳本,步驟很簡單:

        打開httpd.conf

        將371行的

        ScriptAlias /cgi-bin/ "D:/wamp/bin/apache/apache2.4.9/cgi-bin/"前面的#號去掉,就是解除注釋,將后面引號里的D:/wamp/bin/apache/apache2.4.9/cgi-bin/改成自己的cgi-bin所在的路徑

        將387行<Directory "D:/wamp/bin/apache/apache2.4.9/cgi-bin">引號里的內容也改成自己的cgi-bin所在的路徑

        保存之后重啟服務器即可

        【相關推薦】

        1. 詳解cgi向文本或者數據庫寫入數據實例代碼

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

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

        4. 什么是CGI?詳細介紹Python CGI編程

        5. 詳解XML與現代CGI應用程序的示例代碼

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

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        分享一個PythonCGI編程的實例教程

        分享一個PythonCGI編程的實例教程:最近一周的時間在網上繼續學習Python,接觸到了Python的CGI編程,CGI的官方定義如下: CGI(Common Gateway Interface),通用網關接口,它是一段程序,運行在服務器上如:HTTP服務器,提供同客戶端HTML頁面的接口。我比較感興趣的是Python CGI能寫出多
        推薦度:
        標簽: 一個 教程 的教程
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 四虎国产成人永久精品免费| 人人爽人人爽人人片av免费| 最近最好最新2019中文字幕免费 | 国产黄色免费网站| 亚洲精品视频在线| 一级毛片在线免费观看| 亚洲av网址在线观看| 国产精品免费一区二区三区四区| 亚洲AV无码第一区二区三区| 亚洲午夜免费视频| 亚洲高清无在码在线无弹窗 | 免费无码黄十八禁网站在线观看| 亚洲AV无码一区二区三区人| 四虎成人免费大片在线| 真人无码作爱免费视频| 久久精品国产亚洲5555| 久久永久免费人妻精品下载| 亚洲av专区无码观看精品天堂 | 久久经典免费视频| 亚洲精品无码久久| 亚洲精品国产精品乱码不卡| 国产成人精品免费久久久久| 亚洲精品一区二区三区四区乱码 | 亚洲AV日韩AV鸥美在线观看| www.免费在线观看| 亚洲AV无码AV日韩AV网站| 国产亚洲精久久久久久无码77777| 日本免费电影一区二区| 久久久久精品国产亚洲AV无码| 免费国产精品视频| 免费无码又爽又刺激网站| 亚洲成a人片在线观| 四虎永久免费影院| 华人在线精品免费观看| 亚洲娇小性xxxx色| 亚洲人成网77777亚洲色| 中文字幕无码免费久久99| jizz在线免费观看| avtt天堂网手机版亚洲| 亚洲中文字幕伊人久久无码| 成人免费视频69|