《introduction-to-tornado》笔记
http://docs.pythontab.com/tornado/introduction-to-tornado/index.html
1、安装tornado
$ curl -L -O https://github.com/facebook/tornado/archive/v3.1.0.tar.gz
$ tar xvzf v3.1.0.tar.gz
$ cd tornado-3.1.0
$ python setup.py build
$ sudo python setup.py install
验证安装成功:
[root@localhost ~]# ipython
In [1]: import 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状态码。下面是一个常用情况的纲要:
Tornado会在HTTP请求的路径无法匹配任何RequestHandler类相对应的模式时返回404(Not Found)响应码。
如果你调用了一个没有默认值的get_argument函数,并且没有发现给定名称的参数,Tornado将自动返回一个400(Bad Request)响应码。
如果传入的请求使用了RequestHandler中没有定义的HTTP方法(比如,一个POST请求,但是处理函数中只有定义了get方法),Tornado将返回一个405(Methos Not Allowed)响应码。
当程序遇到任何不能让其退出的错误时,Tornado将返回500(Internal Server Error)响应码。你代码中任何没有捕获的异常也会导致500响应码。
如果响应成功,并且没有其他返回码被设置,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
原文地址:http://f1yinsky.blog.51cto.com/12568071/1915077