响应输出
-
write(chunk)
-
作用:将chunk(服务器给浏览器的数据)写到输出缓冲区,然后tornado-IOLoop自动将缓冲区的内容转移到浏览器
-
finish(chunk) 刷新缓冲区
-
利用write()方法写Json数据(使用第二种方式)
注:页面接受到的时content= html类型的数据 import json class json1Handler(RequestHandler): def get(self,*args,**kwargs): per = { "name":"luciano", "age":18, "height":175, "weight":76, } #手动将dict转成json jsonStr = json.dumps(per) self.write(jsonStr) ----------------------------------------- 注:页面接收到的时content = application/json类型的数据 class json2Handler(RequestHandler): def get(self,*args,**kwargs): per = { "name": "luciano", "age": 18, "height": 175, "weight": 76, } self.write(per)
-
-
self.set_header(name,value)
-
作用:手动设置一个名为name,值为value的”响应头“字段
-
参数 name:字段名称 value:字段值
#手动将content-type=text/html 转成 application/json self.set_header("Content-Type","application/json; charset=UTF-8")
-
-
set_default_headers()
-
调用时机:在进入http响应处理方法(GET/POST/…)之前调用
-
作用:可以重写该方法,来预先设置默认的headers
class headerHandler(RequestHandler): #重写set_default_headers def set_default_headers(self): self.set_header("Content-Type","text/html; charset=UTF-8") self.set_header("luciano","not") # 被覆盖 def get(self,*args,**kwargs): self.set_header("luciano", "yes") # 覆盖set_default_header响应头 self.write("lala")
-
注意:在Http处理方法中使用self.set_header 设置的字段会覆盖set_default_deaders()中的self.set_header
-
-
self.set_status(status_code,reason=None)
- 作用:为响应设置状态码
- 参数:
-
status_code :状态码的值 int类型,如果reason=None,则状态码必须是正常值
-
reason : 描述状态码的词组,string类型
class statusHandler(RequestHandler): def get(self,*args,**kwargs): self.set_status(404) # 404是正常值 self.write("status") ---------------------- class statusHandler(RequestHandler): def get(self,*args,**kwargs): self.set_status(999,'who am i where are my')# 999不是正常值 self.write("status")
-
-
self.redirct(url)
-
作用:重定向到url网址
class redirectHandler(RequestHandler): def get(self,*args,**kwargs): self.redirect("/")
-
-
self.send_error(status_code=500,**kwargs)
- 作用:抛出http错误状态码,默认为500,抛出错误后tornado会调用write_error()方法斤进行处,并返回给浏览器错误界面
-
write_error(status_code,**kwargs)
-
作用:用来处理self.send_error()抛出的错误信息并返回给浏览器错误界面
class ErrorHandler(RequestHandler): def get(self,*args,**kwargs): # 接受get请求 flag = self.get_query_argument("flag") # 如果参数flag:0 则错误 if flag=="0": self.send_error(500) self.write("你对了") def write_error(self, status_code: int, **kwargs): if status_code==500: code = 500 # 返回500页面 self.write("服务器内部错误") elif status_code==404: code = 404 # 返回404页面 self.write("资源不存在") self.set_status(code)
-