美文网首页
Tornado源码浅探分析(二)之RequestHandler

Tornado源码浅探分析(二)之RequestHandler

作者: 随风而去_c0e8 | 来源:发表于2019-04-11 13:24 被阅读0次

    tornado的两个关键模块就是web和 ioloop
    RequestHandler就是封装在web.py里面,它是每个视图类必须继承的父类
    它里面有几种方法用处很多:

    1. \color{red}{ set\_status} (status_code, reason):设置回复状态码,status_code是响应状态码,reason是响应描述

    2. \color{red}{ get\_status}():返回我们回复的状态码

    3. \color{red}{get\_query\_argument}(name, default=_ARG_DEFAULT, strip=True):获取url里面镶嵌参数的值,如果参数在url出现多次,取最后一次的值,如果没有参数就使用默认值,strip是否去掉参数两边的空格

    4. \color{red}{ get\_query\_arguments}(name, strip=True):返回给定参数名称值的列表,获取url里面参数名称一样的多个值,获取不到返回空列表

    5. \color{red}{ get\_body\_argument}(name,default=_ARG_DEFAULT, strip=True):获取body里面的参数,一般为获取post发送的数据。

    6. \color{red}{ get\_body\_arguments}(name, strip=True):获取body里面参数名相同的参数值,获取不到返回空列表,一般为获取post发送的数据。

    7. \color{red}{ get\_argument}(name,default,strip= True):这个是整合上面两种获取参数的方法,只需要在请求中调用这个方法就行,如果是post请求就相当于get_body_arguments()

        def __init__(self, application, request, **kwargs):
            super(RequestHandler, self).__init__()
    
            self.application = application
            self.request = request
            self._headers_written = False
            self._finished = False
            self._auto_finish = True
            self._transforms = None  # will be set in _execute
            self._prepared_future = None
            self._headers = None  # type: httputil.HTTPHeaders
            self.path_args = None
            self.path_kwargs = None
            self.ui = ObjectDict((n, self._ui_method(m)) for n, m in
                                 application.ui_methods.items())
          
            self.ui["_tt_modules"] = _UIModuleNamespace(self,
                                                        application.ui_modules)
            self.ui["modules"] = self.ui["_tt_modules"]
            self.clear()
            self.request.connection.set_close_callback(self.on_connection_close)
            self.initialize(**kwargs)
    

    在初始化的时候application和request参数是不需要管的,框架会自动代入进去。子类可以重写self.initialize方法,会自动调用。

    相关文章

      网友评论

          本文标题:Tornado源码浅探分析(二)之RequestHandler

          本文链接:https://www.haomeiwen.com/subject/oxnbjqtx.html