一、Tornado框架概述
Tornado 是 FriendFeed 使用的可擴展的非阻塞式 web 服務器及其相關工具的開源版本。這個 Web 框架看起來有些像 web.py 或者 Google 的 webapp,不過為了能有效利用非阻塞式服務器環境,這個 Web 框架還包含了一些相關的有用工具 和優化。
Tornado 和現在的主流 Web 服務器框架(包括大多數 Python 的框架)有著明顯的區別:它是非阻塞式服務器,而且速度相當快。得利于其 非阻塞的方式和對 epoll 的運用,Tornado 每秒可以處理數以千計的連接,這意味著對于實時 Web 服務來說,Tornado 是一個理想的 Web 框架。我們開發這個 Web 服務器的主要目的就是為了處理 FriendFeed 的實時功能 ——在 FriendFeed 的應用里每一個活動用戶都會保持著一個服務器連接。(關于如何擴容 服務器,以處理數以千計的客戶端的連接的問題,請參閱 C10K problem。)
二、HelloWorld
上述代碼在瀏覽器中打印一行字符串(Hello, world!)。
三、HelloWorld的進一步擴充
port參數是自定義的啟動參數,其它參數均為框架自帶的默認啟動參數。
四、靜態頁面的處理
五、數據庫的處理
Tornado默認只封裝了MySQL的訪問接口,訪問其它數據庫需要使用相應數據庫的Python Interface。
在Application類的初始化方法中,添加數據庫連接。
在RequestHandler類中添加數據庫的訪問方法。
在模板文件中,使用RequestHandler傳遞過來的數據(entries)。
六、表單的處理
在模板文件中,按照通用的HTML方式編寫表單即可。
在RequestHandler的相應方法(get/post)中,通過get_argument()函數獲取表單提交的數據。
七、參考資料
官網:http://www.tornadoweb.org/
中文版可以看這里:http://www.tornadoweb.cn/
官方API參考:http://www.tornadoweb.org/documentation/index.html
《Intorduction to Tornado》:http://ishare.iask.sina.com.cn/f/24156048.html