Tornado—接口调用时方法执行顺序
import tornado.web # web服务
import tornado.ioloop # I/O 时间循环
class MainHandler(tornado.web.RequestHandler):
def initialize(self,name):
self.name = name
print 'initialize方法执行'
def prepare(self):
print 'prepare方法执行'
def set_default_headers(self):
print 'set_default_headers方法执行'
self.set_header("Access-Control-Allow-Origin", "*")
self.set_header("Access-Control-Allow-Headers", "x-requested-with")
self.set_header("Access-Control-Allow-Methods", "POST, GET, OPTIONS")
# 响应以get方式发起的请求
def get(self, *args, **kwargs):
print 'get方法执行'
self.write("hello world!")
# 响应以post方式发起的请求
def post(self, *args, **kwargs):
print 'post方法执行'
self.write(json.dumps({"status": "success", "data": task_list}))
def on_finish(self):
print 'on_finish方法执行'
def write_error(self, status_code, **kwargs):
print 'write_error方法执行'
super().write_error(status_code, **kwargs)
app = tornado.web.Application([
(r"/index", MainHandler, dict(name="name")),
])
if __name__ == "__main__":
app.listen(8000) # 监听端口
# tornado.ioloop.IOLoop.current().start()
tornado.ioloop.IOLoop.instance().start() # 开始事件
在正常情况下没跑出错误的顺序:
- set_default_headers:设置头
- initialize:初始化
- prepare:预处理(类似于django的中间件作用)
- HTTP方法(get、post....)
- on_finish:响应结束后的处理
跑出异常错误的情况下的顺序:
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。- set_default_headers
- initialize
- prepare
- http
- set_default_headers:这里错误信息 是因为响应错误,需要修改头
- write_error:重写错误信息
- on_finish:响应结束后做内存释放,日志处理等操作
https://blog.csdn.net/qq_20042935/article/details/100325953
https://www.cnblogs.com/qianzhengkai/p/11348023.html
更多精彩

