首页 > 代码库 > Tornado 学习笔记

Tornado 学习笔记

Tornado是使用Python编写的一个强大的、可扩展的Web服务器。它在处理严峻的网络流量时表现得足够强健,在创建和编写时有着足够的轻量级,能被用在大量的应用和工具中。

tornadoweb.org : 大量的例子和功能缺陷

Tornado在Github上的版本库: 细节和变更

Tornado的Google Group:  更具体的问题的咨询

 

1.  tornado.options:从命令行中读取设置

from tornado.options import define, optionsdefine("port", default=8000, help="run on the given port", type=int)

该模块指定应用监听HTTP请求的端口。

工作流程:如果一个与define语句中同名的设置在命令行中被给出,那么它将成为全局options的一个属性。如果用户运行程序时使用了--help选项,程序将打印出所有你定义的选项(‘port’)以及你在define函数的help参数中指定的文本。如果用户没有为这个选项指定值,则使用default的值进行代替。Tornado使用type参数进行基本的参数类型验证,当不合适的类型被给出时抛出一个异常。

 

2.  tornado.web.RequestHandler: Tornado的请求处理函数类

     内建方法:

        get_argument:获取查询字符串参数,以及解析 POST 的内容

        write:以一个字符串作为函数的参数,将其写入到HTTP响应中

 

3.

app = tornado.web.Application(handlers=[    (r"/reverse/(\w+)", ReverseHandler),    (r"/wrap", WrapHandler)])

 如果正则表达式中有一系列额外的括号,匹配的字符串将被按照在正则表达式中出现的顺序作为额外的参数传递进参数input中。

 

4. Tornado会自动地设置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)响应码。

 

5. templates: 允许嵌入Python代码片段的HTML文件。

6. 模板继承: 新的模板文件的顶部放上一句{% extends "filename.html" %}

7. 一个块语句可以压缩一些当你扩展时可能想要改变的模板元素。比如,为了使用一个能够根据不同页覆写的动态header块,你可以在父模板main.html中添加如下代码:

<header>    {% block header %}{% end %}</header>

  子模板放入覆写内容

 

Tornado 学习笔记