爲何要閱讀Tornado的源碼?python
Tornado 由前 google 員工開發,代碼很是精練,實現也很輕巧,加上清晰的註釋和豐富的 demo,咱們能夠很容易的閱讀分析 tornado. 經過閱讀 Tornado 的源碼,你將學到:ios
理解 Tornado 的內部實現,使用 tornado 進行 web 開發將更加駕輕就熟。
如何實現一個高性能,非阻塞的 http 服務器。
如何實現一個 web 框架。
各類網絡編程的知識,好比 epoll
python 編程的絕佳實踐
在tornado的子目錄中,每一個模塊都應該有一個.py文件,你能夠經過檢查他們來判斷你是否從已經從代碼倉庫中完整的遷出了項目。在每一個源代碼的文件中,你均可以發現至少一個大段落的用來解釋該模塊的doc string,doc string中給出了一到兩個關於如何使用該模塊的例子。web
下面首先介紹 Tornado 的模塊按功能分類。編程
Tornado模塊分類瀏覽器
Core web framework服務器
tornado.web
— 包含web框架的大部分主要功能,包含RequestHandler和Application兩個重要的類tornado.httpserver
— 一個無阻塞HTTP服務器的實現tornado.template
— 模版系統tornado.escape
— HTML,JSON,URLs等的編碼解碼和一些字符串操做tornado.locale
— 國際化支持websocket
Asynchronous networking 底層模塊網絡
tornado.ioloop
— 核心的I/O循環tornado.iostream
— 對非阻塞式的 socket 的簡單封裝,以方便經常使用讀寫操做tornado.httpclient
— 一個無阻塞的HTTP服務器實現tornado.netutil
— 一些網絡應用的實現,主要實現TCPServer類框架
Integration with other services異步
tornado.auth
— 使用OpenId和OAuth進行第三方登陸tornado.database
— 簡單的MySQL服務端封裝tornado.platform.twisted
— 在Tornado上運行爲Twisted實現的代碼tornado.websocket
— 實現和瀏覽器的雙向通訊tornado.wsgi
— 與其餘python網絡框架/服務器的相互操做
Utilities
tornado.autoreload
— 生產環境中自動檢查代碼更新tornado.gen
— 一個基於生成器的接口,使用該模塊保證代碼異步運行tornado.httputil
— 分析HTTP請求內容tornado.options
— 解析終端參數tornado.process
— 多進程實現的封裝tornado.stack_context
— 用於異步環境中對回調函數的上下文保存、異常處理tornado.testing
— 單元測試