zoukankan      html  css  js  c++  java
  • Django中间件模块的使用

    中间件:

    WSGI:用来搭建和服务器端通信的socket框架和网络收发消息相关的操作

    在WSGI之后,urls.py之前 在全局操作Django请求和响应的模块

    中间件的使用>>>5个固定的方法:

    process_request(self,request)

           顺序: 按照注册顺序,在setting文件里的设置中,从上到下的顺序执行

      返回值:若返回值为None,则执行后续的中间件

    process_response(self,request,response)

           顺序: 按照注册顺序,在setting文件里的设置中,从下到上的顺序执行

      返回值:必须有一个response对象返回,否则报错

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

      顺序: 按照注册顺序,在setting文件里的设置中,从上到下的顺序执行

          在urls中找到对应关系之后,在执行真正的视图函数之前执行

      返回值:若返回值为None,则执行后续的process_view中间件

                若有response对象返回,则后续的process_view不在执行,直接执行process_response从下到上的顺序执行

    process_exception(self,request,exception)

      顺序: 按照注册顺序,在setting文件里的设置中,从下到上的顺序执行

            视图函数中抛出异常时才执行

      返回值:若返回值为None,则执行后续的process_exception中间件

                       返回response

    process_template_response(self,request,response)

       顺序: 按照注册顺序,在setting文件里的设置中,从下到上的顺序执行

         视图函数执行完成,在执行视图函数的返回对象的render方法之前执行

         返回值:若返回值为None,则执行后续的process_exception中间件

                   返回response

    Django 5个方法的调用顺序:

      1.process_request

                  urls.py

      2.process_view

                view

      3.有异常就执行process_exception

      4.如果视图函数返回的响应对象有render方法,就执行process_template_response

      5.process_response

  • 相关阅读:
    03 Java 修饰符
    04_Java 循环结构 for, while 及 do...while
    01_Java第一个程序_报错记录
    07_Java StringBuffer 和 StringBuilder 类_(修改,并且不产生新的未使用对象)
    06_Math 的 floor,round 和 ceil 方法实例比较_格式化字符串_String类
    [爱偷懒的程序员系列]Section 1. “懒”是一切需求的根源
    (1)Micropython+ESP32 点亮一个LED
    数据迁移测试方法【转】
    回来了回来了,失踪人口回归
    [爱偷懒的程序员系列]Section 4. 自定义钉钉消息推送
  • 原文地址:https://www.cnblogs.com/wen-kang/p/9637017.html
Copyright © 2011-2022 走看看