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

  • 相关阅读:
    vim官方教程
    vim命令
    vim设置——/home/.vimrc设置
    Django中静态及媒体文件的引用设置
    博客园特效,拖动鼠标吸附线条
    机器学习工具Octave安装(Win10环境)
    【原】Coursera—Andrew Ng斯坦福机器学习(0)——课程地址和软件下载
    Anaconda 安装教程(Win10环境) Tensorflow安装
    博客园 设置各级标题样式
    Android WebView 捕捉点击的URL中的信息
  • 原文地址:https://www.cnblogs.com/russellyoung/p/10099447.html
Copyright © 2011-2022 走看看