tornado入门
tornado安装
在大部分*nix系统中安装Tornado非常容易--你既可以从PyPI获取(并使用easy_install或pip安装),也可以从Github上下载源码编译安装,如下所示:
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
Tornado官方并不支持Windows,但你可以通过ActivePython的PyPM包管理器进行安装,类似如下所示:
pypm install tornado
一个简单的应用
import tornado.web import tornado.ioloop class Myrequest(tornado.web.RequestHandler): def get(self): name=self.get_argument('name',"mei you la!") age=self.get_argument('age',"mei you la!") print('my name is************ ',name,age) return self.write('get my tornado%s'%name) def post(self): name=self.get_argument('name') gender=self.get_arguments('gender') print('name============',name,gender) return self.write(f"my post {name}{gender}") app=tornado.web.Application(handlers=[(r'/my',Myrequest)]) if __name__=="__main__": app.listen(9999,'0.0.0.0') print("waiting for ...............") tornado.ioloop.IOLoop.instance().start()
get请求:
浏览器输入:http://127.0.0.1:9999/my
响应结果:get my tornado--------mei you la!-mei you la!
浏览器输入:http://127.0.0.1:9999/my?name=whoami&age=18
响应结果:get my tornado--------whoami-18
post请求:
import requests url="http://127.0.0.1:9999/my" body={ 'name':"Jerry", 'gender':'male' } res=requests.post(url,data=body) print(res.text)
响应结果
#my post Jerry['male']
注意,get_argument接收的参数为字符串,get_arguments接受的参数为列表!
接收get请求参数:
推荐1,Self.get_argument(name) or Self.get_arguments(name)
2,Self.get_query_argument(name) or Self.get_query_arguments(name)
接收post请求参数
推荐1,Self.get_argument(name) or Self.get_arguments(name)
2,Self.get_body_argument(name) or Self.get_body_arguments(name)
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)响应码。