tornado 响应头 中断 状态码 工作流程

set_header    设置响应头

clear_header 清除响应头

add_header   增加响应头

self.flush  self.finish  中断

set_status     设置状态码

工作流程

  lesso3.py

  1 # -*- coding:utf-8 -*-
  2 
  3 import tornado.web
  4 import tornado.httpserver
  5 import tornado.options
  6 import tornado.ioloop
  7 from tornado.options import define,options
  8 
  9 define('port', default=8080, help='run port', type=int)
 10 define('version', default='0.0.1', help='version 0.0.1', type=str)
 11 
 12 
 13 class SetHandler(tornado.web.RequestHandler):
 14 
 15     def get(self):
 16         self.write('set_header')
 17         self.set_header('aaa',111) # 设置响应头
 18         self.set_header('ccc',222)
 19         self.set_header('ccc',333) # 重复设置会覆盖前面的
 20         self.clear_header('ccc')   # 清除响应头
 21         self.add_header('ccc',333) # 增加响应头
 22 
 23 
 24 class AddHandler(tornado.web.RequestHandler):
 25 
 26     def get(self):
 27         self.write('add_header')
 28         self.add_header('abc',444)  # 增加响应头
 29 
 30 
 31 class SendHandler(tornado.web.RequestHandler):
 32 
 33     def get(self):
 34         self.write('send_error <br>')
 35         # self.flush()  # 如果加上这个flush会小小的中断一下 后面的send_error 不会执行 write 会执行
 36         # self.finish()  # 如果加上这个finish会彻底中断,后面的任何指令都不会执行
 37         self.write('我被执行了')
 38         self.send_error(404)
 39 
 40 
 41 class NotFoundHandler(tornado.web.RequestHandler):
 42 
 43     def get(self, *args, **kwargs):
 44         self.send_error(404)   
 45 
 46     def write_error(self, status_code, **kwargs):
 47         self.render('error.html')
 48 
 49 
 50 
 51 class StatusHandler(tornado.web.RequestHandler):
 52 
 53     def get(self, *args, **kwargs):  # 重写状态码
 54         self.write('set_status')
 55         self.set_status(200,'every good !')
 56 
 57 
 58 '''工作流程'''
 59 class IndexHandler(tornado.web.RequestHandler):
 60 
 61     def set_default_headers(self):
 62         print('-----set_default_headers:设置headers----')
 63 
 64     def initialize(self):
 65         print('----initialize: 初始化----')
 66 
 67     def prepare(self):
 68         print('----prepare:准备工作----')
 69 
 70     def get(self, *args, **kwargs):
 71         self.write('----get 处理请求----')
 72 
 73     def post(self, *args, **kwargs):
 74         self.write('----post 处理请求----')
 75 
 76     def write_error(self, status_code, **kwargs):
 77         self.render('error.html')
 78 
 79     def on_finish(self):
 80         print('----on_finish: 处理结束 释放资源----')
 81  
 82 
 83 application = tornado.web.Application(
 84     handlers = [
 85     (r"/",SetHandler),
 86     (r"/add",AddHandler),
 87     (r"/send",SendHandler),
 88     (r"/status",StatusHandler),
 89     (r"/index",IndexHandler),
 90     (r"/(.*)",NotFoundHandler),
 91     ],
 92     template_path = './error',
 93     debug = True,
 94 )
 95 
 96 if __name__ == '__main__':
 97     print(options.port)
 98     print(options.version)
 99     tornado.options.parse_command_line()
100     http_server = tornado.httpserver.HTTPServer(application)
101     http_server.listen(options.port)
102     tornado.ioloop.IOLoop.instance().start()

 

posted @ 2018-02-27 13:51  捉急的名字  阅读(780)  评论(0编辑  收藏  举报