zoukankan      html  css  js  c++  java
  • 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()
  • 相关阅读:
    Rails生成随机字符串及加解密
    rails generate model/resource/scaffold的区别
    Rails generate的时候不生成assets和test
    rails delegate机制
    React Router V4发布
    react中创建组件的三种方法
    fetch的用法
    Ruby中map, collect,each,select,reject,reduce的区别
    Sublime Theme
    CentOS 升级Python3.X和pip3
  • 原文地址:https://www.cnblogs.com/zlsgh/p/8478463.html
Copyright © 2011-2022 走看看