tornado中处理请求与响应的类以下, 全部视图类必须继承该类:web
tornado.web.RequestHandlerjson
一. 响应之self.write()方法浏览器
1. 该方法可返回值的类型: 当返回字典时, 能够把字典json成字符串, 使用write返回, 其在response头缓存
中呈现的是text类型.框架
write()方法执行不表明视图的终止,该方法把返回的内容会放入缓存区, tornado
其下如还有代码会继续执行.url
缓存区何时返回内容呢? 1.程序结束; 2.手动刷新; 3.缓存区满了; 4.遇到\nspa
2. 使用write方法直接返回字典, 也可. 其在response响应头中会自动呈现为json类型.code
二. 响应之self.redirect( url )方法:继承
1. 重定向到url网址.
三. 响应之self.send_error( status_code, **kwargs) 和 write_error( status_code, **kwargs)
send_error用来抛出http错误状态码, 默认为500, 抛出后tornado会调用write_error方法处理.并返回
给浏览器事先定义的错误页面.
注意: self.send_error()只是个tornado提供的一个方法, 而write_error是类方法.
def write_erroe(self, status_code, **kwargs):
类中不管何处send_error方法抛出的, 都会在该方法中处理. status_code会接受错误码
可根据status_code来返回不一样的自定义页面.
def get(self, *args, **kwargs):
self.send_error(500)
四. 响应之self.finish()方法
1. 做用同self.write()方法, 均可用于返回数据, 不一样之处在于write方法是把数据放入缓存区, 而finish方法
在write基础上会自动刷新缓存区把内容返回, 且会关闭当此请求通道, 其下其他的返回内容无效.
五. 响应头设置
1. set_status( status_code, reason=None)方法的使用:
在tornado视图方法中直接使用:(注意reason为None时状态码必须为正常值
def get(self):
self.set_status(666, ‘状态码的描述’)
self.write(‘...........’)
2. tornado提供有全局设置响应头的方法, 方法名固定, 框架内置的:
在视图类中定义该方法, 其下配合set_header方法设置响应头, 便可让试图类中全部方法都带有响应头:
def set_default_headers():
self.set_header(key, value) # key和value自定义便可.
self.set_header(k1, v1) # 可罗列多个该方法, 一次设置多个响应头