zoukankan      html  css  js  c++  java
  • 四、Handler(WSGIHandler)

    1.1       类视图关系

    Handler主要负责处理HTTP请求,并生成相应的相应,process_request,process_response是两个最主要的成员。下图是WSGIHandler的类图:

     

    从类图中,可以大致看出其主要完成的工作,其中成员request_class赋值为WSGIRequest实体,下面来看看WSGIRequest的类图关系:

     

    上图是WSGIRequest的变量成员关系图,其函数成员关系图如下:

     

    1.2       初始化及其调用关系

    首先,WSGIHandler在定义时,直接将request_class成员指定为WSGIRequest(request_class = WSGIRequest)。

    其次,WSGIHandler的_call_成员调用中,

    def __call__(self, environ, start_response):
    request = self.request_class(environ) /*初始化并返回一个WSGIRequest实体*/
    response = self.get_response(request) /*Handler主体工作全部在此完成 */

           那么WSGIHandler是在何处被调用的呢?前面提到过,handler被ServerHandler通过run(application)调用,而实际application实际指向WSGIServer的application成员。

    handler = ServerHandler(
        self.rfile, self.wfile, self.get_stderr(), self.get_environ()
    )
    handler.request_handler = self      # backpointer for logging
    handler.run(self.server.get_app())à
    self.setup_environ()
    self.result = application(self.environ, self.start_response)
    self.finish_response()

    注意,ServerHnadler的environ成员 存储了档次HTTP请求的一些动态参数以及系统的配置参数,当该成员传递给WSGIHandler之后,通过解析,生成WSGIRequest成员,该成员是WSGIHandler处理的主要成员之一。

     

  • 相关阅读:
    DevExpress XtraTabbedMdiManager删除Page
    Winform 窗体获得焦点
    leaflet 整合 esri
    使用 Leaflet 显示 ArcGIS 生成西安80坐标的地图缓存
    收藏一些编码舒服的cnblog博客园 博客
    获取字符串中的可能身份证号 并验证
    ASP.NET 的烂问题 -- 加载、创建c++项目失败
    ASP.NET 的烂问题
    sublime text3 解决打开文件中文乱码问题
    [转载]function与感叹号(转)
  • 原文地址:https://www.cnblogs.com/fbli/p/5925077.html
Copyright © 2011-2022 走看看