Tornado入门

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

01.jpg
02.jpg

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)

推荐阅读更多精彩内容