现在的位置: 首页 > 综合 > 正文

學習鳥web.py 0.37源碼

2013年09月17日 ⁄ 综合 ⁄ 共 1072字 ⁄ 字号 评论关闭

用罷四天,全職學webpy,對webpy之架構有大觀,部分細微處亦有心得。撰此文以記。

首次學習分析一個框架,耗時較多,不過學習過程中,連帶CGI,FastCGI,WSGI,HTTP,長連接等等等等一系列嘅名詞有咗深刻體會,加上剛過嘅學期學到嘅網絡基礎,我看待WEB,覺得就係客戶端同服務器端嘅交流。就係圍繞著HTTP協議,理解同反饋。客戶端寫一篇文章畀服務器,服務器分析完之後返回一篇文章於客戶.... 想法很多,不再亂扯。

參考網頁:

http://webpy.org/

http://blog.csdn.net/agathe/article/details/7187564

http://woodpecker.org.cn/diveintopython3/

http://sourcecodebrowser.com/webpy/0.34/index.html

仲有google...

文章 http://blog.csdn.net/agathe/article/details/7187564 係webpy架構嘅總覽,還算可以喇。對目錄分析得7788。

閱讀webpy源碼,我係直接按照HelloWorld例子所調用到嘅函數讀起。其實就分成兩部分,一部分係製造一個application,另一部分係將呢個app轉化成wsgi可處理函數為入口嘅app運行過程。呢兩條數據處理流程過程中會用到utils.py、net.py、http.py、webapi.py裡頭嘅大量函數,呢幾個文件裏面包含大量嘅類同函數亦相對簡單,先讀讀有個大概印象對分析下面兩個部分有好好效果,當然,我對每個類嘅實現都基本睇過,有啲真係寫得好好,開闊晒我眼界。

閱讀完一大堆函數後,我開始理解webpy係點樣成為一個框架。(以下指application.py,至於其他db.py等等等等基本上沒有耦合,可各自閱讀)

  1. 製造application。由 line44 application 個初始化方法開始讀起,呢一部分會將一啲基礎嘢設置好,保存好url路由、處理請求類入口和兩個處理機。
  2. wsgi數據流程。  由 line251 wsgifunc 開始讀起,先遞歸處理中間件,然後調用wsgi函數,清空 ThreadedDict ,讀入請求信息,遞歸執行處理機,然後匹配URL、指派對應類,運行該類嘅GET或者POST方法,返回一個生成器。其中有好多好多巧妙之處,亦難以一一描述。其中對於URL嘅匹配,做cache畀我印象好深刻.... 唔寫喇,宿舍條友瞓咗覺,嫌我敲鍵盤大聲喐嚟喐去,意思係叫我咪噪生晒......快哭了

抱歉!评论已关闭.