Tornadao—输出设置

目录

  1. set_header(name, value)
  2. set_default_headers()
  3. set_status
  4. redirect(url)
  5. send_error(status_code=500, kwargs)
  6. write_error(status_code, **kwargs)

  • set_header(name, value)


    set_header(name, value)
    利⽤set_header(name, value)⽅法,可以⼿动设置⼀个名为name、值为
    value的响应头header字段。
  • set_default_headers()


    set_default_headers()
    该⽅法会在进⼊HTTP处理⽅法前先被调⽤,可以重写此⽅法来预先设置默认
    的headers。注意:在HTTP处理⽅法中使⽤set_header()⽅法会覆盖掉在
    set_default_headers()⽅法中设置的同名header。
    class IndexHandler(RequestHandler):
        def set_default_headers(self):
            print
    
        "执⾏了set_default_headers()"
        # 设置get与post⽅式的默认响应体格式为json
        self.set_header("Content-Type", "application/json;
        charset = UTF - 8
        ")
        # 设置⼀个名为itcast、值为python的header
        self.set_header("itcast", "python")
    
        def get(self):
            print
    
        "执⾏了get()"
        stu = {
            "name": "zhangsan",
            "age": 24,
            "gender": 1,
        }
        stu_json = json.dumps(stu)
        self.write(stu_json)
        self.set_header("itcast", "i love python")  # 注意此处重写了header中的itcast字段
    
    
    def post(self):
        print
    
    
    "执⾏了post()"
    stu = {
        "name": "zhangsan",
        "age": 24,
        "gender": 1,
    }
    stu_json = json.dumps(stu)
    self.write(stu_json)
  • set_status


    set_status(status_code, reason=None)
    为响应设置状态码。参数说明:
    status_code int类型,状态码,若reason为None,则状态码必须为下表
    中的。
    reason string类型,描述状态码的词组,若为None,则会被⾃动填充为
    下表中的内容。
  • redirect(url)


    redirect(url)
    重定向
  • send_error(status_code=500, kwargs)


     send_error(status_code=500, kwargs)
    抛出HTTP错误状态码status_code,默认为500,kwargs为可变命名参数。使
    ⽤send_error抛出错误后tornado会调⽤write_error()⽅法进⾏处理,并返回
    给浏览器处理后的错误⻚⾯。
    使⽤send_error()⽅法后就不要再向输出缓冲区写内容了!
  • write_error(status_code, **kwargs)


    write_error(status_code, **kwargs)
    ⽤来处理send_error抛出的错误信息并返回给浏览器错误信息⻚⾯。可以重写
    此⽅法来定制⾃⼰的错误显示⻚⾯。
    
    class IndexHandler(RequestHandler):
     def get(self):
     err_code = self.get_argument("code", None) # 注意返回的是
    unicode字符串,下同
     err_title = self.get_argument("title", "")
     err_content = self.get_argument("content", "")
     if err_code:
     self.write_error(err_code, title=err_title,
    content=err_content)
     else:
     self.write("主⻚")
     def write_error(self, status_code, **kwargs):
     self.write(u"<h1>出错了,程序员GG正在赶过来!</h1>")
     self.write(u"<p>错误名:%s</p>" % kwargs["title"])
     self.write(u"<p>错误详情:%s</p>" % kwargs["content"])
发布了259 篇原创文章 · 获赞 6 · 访问量 3538

猜你喜欢

转载自blog.csdn.net/piduocheng0577/article/details/105059720