zoukankan      html  css  js  c++  java
  • Django的请求生命周期与中间件中的5中方法

    请求生命周期:

    客户端——>WSGI——> 中间件——>路由匹配——>视图函数——>WSGI——>客户端

    中间件:

    在全局层明处理请求和响应的

    form django.utils. deprecation import MiddlaraMixin

    5种方法与4个要点:执行顺序,执行时间,参数,返回值

    方法:
    process_request

    process_views

    process_exception

    process_response

    process_template_response

    process_request(self,request)

    参数:request

    返回值:

    None:正常流程,继续执行下一个中间件的process_request(按照中间件的注册顺序);

    HttpResponse对象:下面中间件的方法不再执行,直接执行当前中间件的process_response方法,然后倒叙向上执行同一个方法;

    执行顺序:按中间件注册顺序,顺序执行

    执行时间:WSGI之后,路由匹配之前;

    process_view(self,request,func_name,callback_args,callback_kwargs)

    参数:request,func_name,callback_args,callback_kwargs

    返回值:

      None:正常流程

      HttpResponse对象: 下面中间件的同方法不执行,视图函数也不执行,直接执行最后一个中间件的process_response方法,倒序向上执行此方法;

    执行顺序:按照中间件注册顺序,顺序执行

    执行时间:视图函数之前,路由匹配之后,

    process_response(self,request,response)

    参数:request,

      response  返回给浏览器的响应对象

    返回值:

      None:正常流程

      HttpResponse对象: 正常流程,继续执行中间件的同方法,必须返回的

    执行顺序:按照中间件注册顺序,倒叙序执行

    执行时间:视图函数之后,进入WSGI之前

    process_exception(self,request,exception)

    #处理视图层明的异常

    参数:request,

      exception:视图发生的错误对象

    返回值:

      None:交个下一个中间件处理,最后交个django处理

      HttpResponse对象:执行最后一个中间件的process_response方法,倒叙向上执行

    执行顺序:按照中间件注册顺序,倒叙序执行

    执行时间(触发条件):视图函数发生错误之后,被调用,

    process_template_response(self,request,response)

      return response

    参数:request,

      response:返回的响应对象

    返回值:

      HttpResponse对象:必须返回,倒叙向上执行

    执行顺序:按照中间件注册顺序,倒叙序执行

    执行时间(触发条件):视图函数返回TemplateResponse对象或Response对象有render方法

  • 相关阅读:
    [Swift实际操作]七、常见概念-(5)使用NSString对字符串进行各种操作
    [Swift]LeetCode326. 3的幂 | Power of Three
    [Swift]LeetCode303. 区域和检索
    [Swift]LeetCode292. Nim游戏 | Nim Game
    [Swift]LeetCode290. 单词模式 | Word Pattern
    SpringMVC框架中的异常解析器-ExceptionHandler和HandlerExceptionResolver
    一个Web报表项目的性能分析和优化实践(七):性能监测工具JavaMelody
    一个Web报表项目的性能分析和优化实践(七):性能监测工具JavaMelody
    百度Echarts-免费的商业产品图表库
    百度Echarts-免费的商业产品图表库
  • 原文地址:https://www.cnblogs.com/jayxuan/p/11371575.html
Copyright © 2011-2022 走看看