概述
它是非阻塞式服务器,而且性能十分优越,Tornado 每秒可以处理数以千计的连接,因此 Tornado 是实时 Web 服务的一个理想框架,专门解决C10K问题。
模块
主要模块
- tornado.web:包含了大多数重要的功能
- tornado.escape: XHTML、JSON、URL的编码解码方法
- database: 对Mysql的简单封装
- template:web模板系统
- httpclient:非阻塞式 HTTP 客户端,它被设计用来和 web 及 httpserver 协同工作
- auth:第三方认证的实现(包括 Google OpenID/OAuth、Facebook Platform、Yahoo BBAuth、FriendFeed OpenID/OAuth、Twitter OAuth)
- local:针对本地化和翻译的支持
- options:命令行和配置文件解析工具,针对服务器环境做了优化
底层模块:
- httpserver:服务于 web 模块的一个非常简单的 HTTP 服务器的实现
- iostream:对非阻塞式的 socket的简单封装,以方便常用读写操作
- ioloop:核心的I/O循环
代码中学习Tornado的基本功能
helloTornado展示Tornado最频繁使用的功能
1 | import tornado.httpserver |
除了get方法,来尝试一下post方法!
1 | import textwrap |
修改用户名代码示例:
1 | # matched with (r"/widget/(\d+)", WidgetHandler) |
HTTP的状态码
- 404 NOT Found:Tornado会在HTTP请求的路径无法匹配任何RequestHandler类相对应的模式时返回404(Not Found)响应码。
- 400 Bad Request:如果你调用了一个没有默认值的get_argument函数,并且没有发现给定名称的参数,Tornado将自动返回一个400(Bad Request)响应码。
- 405 Method Not Allowed:如果传入的请求使用了RequestHandler中没有定义的HTTP方法(比如,一个POST请求,但是处理函数中只有定义了get方法),Tornado将返回一个405(Methos Not Allowed)响应码。
- 500 Internal Server Error:当程序遇到任何不能让其退出的错误时,Tornado将返回500(Internal Server Error)响应码。你代码中任何没有捕获的异常也会导致500响应码。
- 200 OK:如果响应成功,并且没有其他返回码被设置,Tornado将默认返回一个200(OK)响应码。