zoukankan      html  css  js  c++  java
  • django 中间件


    1. 中间件
    1. 什么是中间件?
    中间件是一个类。用来处理Django的请求和响应的框架级别的钩子。
    中间件中定义方法。
    2. 五个方法:(process_request、process_response)
    process_request(self,request)
    process_view(self, request, view_func, view_args, view_kwargs)
    process_template_response(self,request,response)
    process_exception(self, request, exception)
    process_response(self, request, response)

    1. process_request
    1. 执行时间
    在视图函数之前执行
    2. 参数
    request 和视图中的request是同一个
    3. 返回值
    返回None
    返回response对象
    不执行后面中间的process_request方法和视图
    直接执行当前值中间件的process_response方法
    4. 执行顺序
    按照注册的顺序执行


    2. process_response
    1. 执行时间
    在视图函数之后执行
    2. request, response
    request 和视图中的request是同一个
    response 返回的response对象
    3. 返回值
    返回response对象
    4. 执行顺序
    按照注册的倒序执行

    3. process_view
    1. 执行时间
    在视图函数之前,process_request之后执行
    2. 参数
    view_func 将要执行的视图函数
    view_args 视图函数的可变长位置参数
    view_kwargs 视图函数的可变长关键字参数
    3. 返回值
    返回 None 正常执行
    返回 response对象 不执行后面的process_view和视图,直接执行所有中间件的process_response方法

    4。执行顺序
    按照注册的顺序执行

    4. process_exception(有条件触发:有错误才执行)
    1. 执行时间
    在视图函数之后,process_response之前执行
    2. 参数
    exception 错误对象
    3. 返回值
    返回 None 不对错误进行处理,交给下一个中间件进行处理
    返回 response对象 下一个中间的process_exception不执行,直接执行所有中间件的process_response方法
    4. 执行顺序
    按照注册的倒序执行
    5. process_template_response(条件触发:视图返回的response有render方法)
    1. 执行时间
    在视图函数之后,process_response之前执行
    2. 参数
    3. 返回值
    返回 response对象
    4. 执行顺序
    按照注册的倒序执行,执行完所有的process_template_response方法后执行response.render方法
    3. 中间件的执行流程
    见博客中的图

    4. django请求的生命周期
    见博客中的图

    https://www.cnblogs.com/maple-shaw/articles/9333824.html#_labelTop

  • 相关阅读:
    Java 处理 XML
    Spring MVC全局异常处理
    ThreadLocal与Synchronized区别
    office xml 方式
    Nginx ssl证书部署方法
    利用nginx来屏蔽指定的user_agent的访问以及根据user_agent做跳转
    Nginx使用GZIP来压缩网页
    Kibana安装与基本用法(ELK)
    用Linux自带的Logrotate来管理日志
    Net accounts命令
  • 原文地址:https://www.cnblogs.com/zhaosijia/p/9671736.html
Copyright © 2011-2022 走看看