學習python cgi的一點心得體會

來源:互聯網
上載者:User

標籤:python cgi 初學坑

    這兩天學了python cgi編程,挺好玩的 跟大家分享一下:

    目標:

        建立一個cgi指令碼 接收來訪者的參數

    步驟:

        建立一個cgi服務的根目錄(隨便建立,然後在終端或者cmd下切換到該目錄下)

        python2.x的httpserver啟動:python -m CGIHTTPServer 13333   會啟動http server 在13333連接埠上

        python3.x的httpserver啟動:python -m http.server --cgi 13333 這個--cgi不可以拿掉 否則cgi指令碼運行不了

        然後這個時候 你就可以建立一個比如index.html 測試一下 訪問了

        接下來 建立cgi-bin 目錄 在目前的目錄下(目錄名必須是這個,cgi指令碼就放在這個目錄下),此時相對於http服務來說 根目錄還是上一層的目錄

        可以建立一個index.py在cgi-bin下,內容:

#!/usr/bin/env pythonimport cgi   #內建模組html=‘‘‘<html>        <head>        </head>        <body>                <form method="POST">                        <input type="text" name="name">                        <input type="text" name="age">                        <input type="submit" name="return">                </form>                <b>My name is %s , I‘m %s years old .</b>         </body></html>‘‘‘print("Content-Type:text/html")            #headerprint()                                    #聲明header結束f=cgi.FieldStorage()                       #cgi的一個類 用來接收參數的try:        print(html%(f[‘name‘].value,f["age"].value))except:        print(html%(‘\t‘,‘\t‘))

    


        效果會在你訪問的時候出現兩個文字框:

       650) this.width=650;" src="http://s4.51cto.com/wyfs02/M00/89/F4/wKioL1gi10jz471XAAAzQU8Undc097.png-wh_500x0-wm_3-wmp_4-s_3850704049.png" title="9~HD[KF`Y`E$2H)N$37]6DO.png " alt="wKioL1gi10jz471XAAAzQU8Undc097.png-wh_50" />

        有幾個坑:一個是python的cgi模組的啟動位置 一定要是在cgi-bin的上層目錄下;

其次是index.py一定是在cgi-bin下才行 而且許可權不足的話會報錯;三是在執行個體化cgi的fieldstorage類的時候,注意別聲明多次,比如我在上邊的代碼的try那裡才去執行個體化,類似這樣:

    try :

        print(html%(cgi.FieldStorage["name"].value,cgi.FieldStorage["age"].value)

    except......

    這樣寫的結果會什麼都不顯示 因為第一次執行個體化會傳遞資料 但是第二次的時候沒有提交的結果了,所以會有可能神馬都不顯示或者只顯示一個;

    最後就是注意這個:

        print("Content-Type:text/html")

        print()

     這個一定要寫上,這個是聲明頭部和頭部結束的,不寫有問題;暫時我也就總結這麼多~

    跟我一起來一句英文吧:

        It always seems impossible until its done

        成功之前,一切看起來都是不可能的



本文出自 “扛著一把鍬,專填各種坑” 部落格,請務必保留此出處http://forthedream.blog.51cto.com/11242688/1871140

學習python cgi的一點心得體會

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.