tornado六:接口调用顺序
接口调用顺序:
方法:
- initalize()方法,用于在路由中传递参数
- perpare()方法,用于预处理方法,在执行对应的HTTP请求方法之前调用。注意:任何一个HTTP请求都会执行prepare方法。
- 比如反爬虫,限制登录等等处理。
- HTTP请求方法:
get:传送快,一般获取不是很大量的数据,数据不安全,常方法。
post:传送慢,可以传送大量数据,数据安全,常用方法。
head:类似get请求,只不过响应中没有具体的内容,用于获取报头。
delete:请求服务器删除指定的资源。
put:从客户端向服务器传送指定的内容。
patch:请求修改局部内容。
options:返回URL支持的所有HTTP方法。
- set_default_headers()
- writer_error()方法
- on_finish()方法,在请求处理结束后调用。
- 可以在该方法中,进行资源清理释放,或者日志处理。
- 注意:尽量不要在该方法中进行响应输出。这里应该与客户端响应,无任何关系。
顺序:
- 在正常情况,未抛出错误的情况下的调用顺序:
- set_default_headers
- initialize
- prepare
- HTTP方法
- on_finish
class IndexHandler(RequestHandler): def initialize(self): print "initialize" def prepare(self): print "prepare" def get(self, *args, **kwargs):
print 'get' self.write("this is ......") def set_default_headers(self): print "set_default_headers" def write_error(self, status_code, **kwargs): print "write error" def on_finish(self): print "on_finish"
- 在输出错误的时侯的顺序,要看在什么时抛出错误。示例:以HTTP方法时,抛出错误。
- set_default_headers
- initialize
- prepare
- HTTP方法
- set_default_headers
- writer_error
- on_finish
class IndexHandler(RequestHandler): def initialize(self): print "initialize" def prepare(self): print "prepare" def get(self, *args, **kwargs): self.send_error(500) # send_error(500)后,不会执行后面的HTTP方法中的self.write # 但会跳到write_error方法,执行此方法 self.write("this is ......") def set_default_headers(self): print "set_default_headers" def write_error(self, status_code, **kwargs): print "write error" self.write("服务器错误") def on_finish(self): print "on_finish"
posted on 2018-07-29 14:40 myworldworld 阅读(399) 评论(0) 收藏 举报
浙公网安备 33010602011771号