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)