1什么是Tornado?
中文翻譯為龍卷風,這里指Tornado web server。
python編寫的web服務器兼web應用框架。
FriendFeed研發,Facebook收購,2009年9月開源。
2Tornado的優勢
輕量級web框架
異步非阻塞IO處理方式
出色的抗負載能力
優異的處理性能,不依賴多進程/多線程,一定程度解決C10k問題
WSGI全棧替代產品,推薦同時使用其web框架和HTTP服務器
3 Tornado VS Django
Django:重量級web框架,功能大而全,注重高效開發
①內置管理后臺
②內置封裝完善的ORM操作
③session功能
④后臺管理
⑤缺陷:高耦合
Tornado:輕量級web框架,功能少而精,注重性能優越
①HTTP服務器
②異步編程
③WebSocket
④缺陷:入門門檻較高
4 Tornado的helloworld
5 Tornado 入門程序代碼解析
tornado.web:tornado的基礎web框架
①RequestHandler:封裝對請求處理的所有信息和處理方法
②get/post/..:封裝對應的請求方式
③write():封裝響應信息,寫響應的信息的一個方法
tornado.ioloop:核心io循環模塊,封裝linux的epoll和BSD的kqueue,tornado高性能處理的核心。
①current()返回當前線程的IOLoop實例對象。
②start()啟動IOLoop實例對象的IO循環,開啟監聽
6 httpserver底層處理
httpserver監聽端口
①tornado.httpserver.HTTPServer(app)
②httpserver.listen(port)
httpserver實現多進程操作
①tornado.httpserver.HTTPServer(app)
②httpserver.bind(port)
③httpserver.start(0/None/<0/num)
7options配置
全局配置
tornado.options.define( name,default,type,multiple,help)
命令行參數轉換
tornado.options.parse_command_line()
配置文件
tornado.options.parse_config_file(path)
配置模塊
8application配置
程序調試之debug配置
tornado.web.Application([(..)],debug=True)
自動重啟+取消緩存模板+取消緩存靜態文件+提供追蹤信息
路由信息初始化參數配置
tornado.web.Application([(r"",Handler,{k:v})])
def initialze(self,k)
路由名稱設置及反解析
名稱設置:tornado.web.Application([url(r"",handler,{k,v},name="")])
反解析操作:reverse_url(name)