zoukankan      html  css  js  c++  java
  • tornado请求与响应

    tornado中处理请求与响应的类如下, 所有视图类必须继承该类:

    tornado.web.RequestHandler

    . 响应之self.write()方法

      1.  该方法可返回值的类型: 当返回字典时, 可以把字典json成字符串, 使用write返回, 其在response

           中呈现的是text类型.

      write()方法执行不代表视图的终止,该方法把返回的内容会放入缓存区, 

       其下如还有代码会继续执行.

      缓存区什么时候返回内容呢?  1.程序结束; 2.手动刷新; 3.缓存区满了; 4.遇到

      2.  使用write方法直接返回字典, 也可. 其在response响应头中会自动呈现为json类型.

    .  响应之self.redirect( url )方法:

      1. 重定向到url网址.

    . 响应之self.send_error( status_code, **kwargs) write_error( status_code, **kwargs)

    send_error用来抛出http错误状态码, 默认为500, 抛出后tornado会调用write_error方法处理.并返回

    给浏览器事先定义的错误页面.

    注意: self.send_error()只是个tornado提供的一个方法, write_error是类方法.

    def write_erroe(self, status_code, **kwargs):

    类中无论何处send_error方法抛出的, 都会在该方法中处理. status_code会接受错误码

    可根据status_code来返回不同的自定义页面.

    def get(self, *args, **kwargs):

    self.send_error(500)

    四. 响应之self.finish()方法

     1. 作用同self.write()方法, 都可用于返回数据, 不同之处在于write方法是把数据放入缓存区, 而finish方法

      在write基础上会自动刷新缓存区把内容返回, 且会关闭当此请求通道, 其下其余的返回内容无效.

    .  响应头设置

      1.  set_status( status_code, reason=None)方法的使用:

          tornado视图方法中直接使用:(注意reasonNone时状态码必须为正常值

         def get(self):

             self.set_status(666, ‘状态码的描述’)

             self.write(‘...........’)

      2.  tornado提供有全局设置响应头的方法, 方法名固定, 框架内置的:

          在视图类中定义该方法, 其下配合set_header方法设置响应头, 即可让试图类中所有方法都带有响应头:

         def set_default_headers():

             self.set_header(key, value)  # keyvalue自定义即可.

             self.set_header(k1, v1)     # 可罗列多个该方法, 一次设置多个响应头

  • 相关阅读:
    Http状态吗504问题复盘
    Http状态码502问题复盘
    Nginx服务的基本配置
    mysql修改root密码
    centos7开启80端口及其他端口
    tp5隐藏入口文件(基于nginx)
    使nginx支持pathinfo模式
    laravel-admin 上传图片过程中遇到的问题
    Maven介绍
    java中泛型
  • 原文地址:https://www.cnblogs.com/quzq/p/10992821.html
Copyright © 2011-2022 走看看