《introduction-to-tornado》笔记

http://docs.pythontab.com/tornado/introduction-to-tornado/index.html

 

1、安装tornado


 

2、Hello Tornado

代码清单1-1 基础:hello.py

import tornado.httpserver
import tornado.ioloop
import tornado.options
import tornado.web
#Tornado包括了一个有用的模块(tornado.options)来从命令行中读取设置。
#我们在这里使用这个模块指定我们的应用监听HTTP请求的端口。
#它的工作流程如下:如果一个与define语句中同名的设置在命令行中被给出,那么它将成为全局options的一个属性。
from tornado.options import define, options
define("port", default=8000, help="run on the given port", type=int)
 
class IndexHandler(tornado.web.RequestHandler):
    def get(self):
        greeting = self.get_argument('greeting', 'Hello')
        self.write(greeting + ', friendly user!')
 
if __name__ == "__main__":
    tornado.options.parse_command_line()
    app = tornado.web.Application(handlers=[(r"/", IndexHandler)])
    http_server = tornado.httpserver.HTTPServer(app)
    http_server.listen(options.port)
    tornado.ioloop.IOLoop.instance().start()
 
 
$python hello.py --port=8000
验证:
在浏览器中打开http://localhost:8000
或者
[cxiong@localhost ~]$ curl http://localhost:8000/
Hello, friendly user![cxiong@localhost ~]$ curl http://localhost:8000/?greeting=Salutations
Salutations, friendly user![cxiong@localhost ~]$

 

3、HTTP状态码

从上面的代码可以看出,你可以使用RequestHandler类的set_status()方法显式地设置HTTP状态码。然而,你需要记住在某些情况下,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)响应码。

 
========================================================================================================
 
http://www.tornadoweb.org
 
《Tornado Web 服务器》

http://tornado-zh-cn.readthedocs.io/zh_CN/latest/

 

《tornado概览》

http://www.tornadoweb.cn/documentation

 

《python与tornado》-现代魔法学院

http://www.nowamagic.net/academy/part/13/325

 

《tornado框架》

http://www.cnblogs.com/kongqi816-boke/p/5699866.html#_labelTop