zoukankan      html  css  js  c++  java
  • Django之中间件

    Django的中间件

    一、中间件的定义及功能

    在Django中就是一个类,作用是对所有的请求进行批量处理,可以在视图函数执行前后进行自定义操作,能够在全局范围内改变Django的输入和输出。
    具体描述:https://www.cnblogs.com/maple-shaw/articles/9333824.html
    

    二、五个方法

    • process_request(self,request)

    • process_response(self, request, response)

    • process_view(self, request, view_func, view_args, view_kwargs)

    • process_exception(self, request, exception)

    • process_template_response(self,request,response)

      参数 执行的时间 执行的顺序 返回值

    process_request(self,request)

    ​ 执行时间:在视图函数执行之前

    ​ 参数:
    request ——》 跟视图函数中的是同一个

    ​ 执行顺序:按照注册顺序 顺序执行

    ​ 返回值:
    None: 正常流程
    HttpResponse对象:不执行后面中间中的process_request方法,不执行视图函数,直接执行当前中间件中的process_response方法,后面正常走

    img

    process_response(self, request, response)

    ​ 执行时间:在视图函数执行之后

    ​ 参数:
    request ——》 跟视图函数中的是同一个

    response ——》 视图函数中传递的响应对象

    ​ 执行顺序:按照注册顺序 倒叙执行

    ​ 返回值:HttpResponse对象:必须是响应对象

    process_view(self, request, view_func, view_args, view_kwargs)

    ​ 执行时间:在process_request方法之后,在视图函数执行之前

    ​ 参数:

    request   ——》  跟视图函数中的是同一个
    
    ​view_func ——》 视图函数
    
    ​view_args —— 》视图函数的位置参数
    
    view_kwargs——》视图函数的关键字参数
    

    ​ 执行顺序:按照注册顺序 顺序执行

    ​ 返回值:None: 正常流程

    ​ HttpResponse对象:不执行后面中间中的process_view方法,不执行视图函数,直接执行最后一个中间件中的process_response方法,后面正常走

    img

    process_exception(self, request, exception)

    ​ 执行时间:出现异常的时候才执行

    ​ 参数:request ——》 跟视图函数中的是同一个

    ​ exception——》 异常对象

    ​ 执行顺序:按照注册顺序 倒叙执行

    ​ 返回值:None: 正常流程

    ​ HttpResponse对象:不执行后面中间中的process_exception方法,直接执行最后一个中间件中的process_response方法,后面正常走

    process_template_response(self,request,response)

    ​ 执行时间:视图函数返回的response对象有一个叫render的方法

    ​ 参数:request ——》 跟视图函数中的是同一个

    ​ response ——》 视图函数中传递的响应对象

    ​ 执行顺序:按照注册顺序 倒叙执行

    ​ 返回值:必须返回response对象

    Django请求流程图

    img

  • 相关阅读:
    leetcode5 Longest Palindromic Substring
    leetcode17 Letter Combinations of a Phone Number
    leetcode13 Roman to Integer
    leetcode14 Longest Common Prefix
    leetcode20 Valid Parentheses
    leetcode392 Is Subsequence
    leetcode121 Best Time to Buy and Sell Stock
    leetcode198 House Robber
    leetcode746 Min Cost Climbing Stairs
    tomcat下使用druid配置jnid数据源
  • 原文地址:https://www.cnblogs.com/russellyoung/p/10099447.html
Copyright © 2011-2022 走看看