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