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)    收藏  举报

导航