django中间件

深藏阁楼爱情的钟 2023-06-05 05:48 47阅读 0赞

参考博客:https://www.cnblogs.com/liwenzhou/p/8761803.html

  1. 今日内容

    1. 中间件:http://www.cnblogs.com/liwenzhou/p/8761803.html
  1. 1. URL的白名单 url = \["/xx/", "/oo/", "/haha/"\]
  2. 2. 登陆之后才能访问某些URL 之前使用装饰器

中间件的定义:

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

中间件的使用:

  1. 5个固定的方法
  2. process\_request(self, request)
  3. 执行顺序:
  4. 按照注册的顺序(在settings.py里面设置中 从上到下的顺序)
  5. 何时执行:
  6. 请求从wsgi拿到之后
  7. 返回值:
  8. 返回None,继续执行后续的中间件的process\_request方法
  9. 返回response , 不执行后续的中间件的process\_request方法
  10. process\_response
  11. 执行顺序:
  12. 按照注册顺序的倒序(在settings.py里面设置中 从下到上的顺序)
  13. 何时执行:
  14. 请求有响应的时候
  15. 返回值:
  16. 必须返回一个response对象
  17. process\_view(self, request, view\_func, view\_args, view\_kwargs):
  18. 执行顺序:
  19. 按照注册的顺序(在settings.py里面设置中 从上到下的顺序)
  20. 何时执行:
  21. urls.py中找到对应关系之后 在执行真正的视图函数之前
  22. 返回值:
  23. 返回None,继续执行后续的中间件的process\_view方法
  24. 返回response,
  25. process\_exception(self, request, exception)
  26. 执行顺序:
  27. 按照注册顺序的倒序(在settings.py里面设置中 从下到上的顺序)
  28. 何时执行:
  29. 视图函数中抛出异常的时候才执行
  30. 返回值:
  31. 返回None,继续执行后续中间件的process\_exception
  32. 返回response
  33. process\_template\_response(self, request, response)
  34. 执行顺序:
  35. 按照注册顺序的倒序(在settings.py里面设置中 从下到上的顺序)
  36. 何时执行:
  37. 视图函数执行完,在执行视图函数返回的响应对象的render方法之前
  38. 返回值:
  39. 返回None,继续执行后续中间件的process\_exception
  40. 返回response

Django调用 注册的中间件里面五个方法的顺序:

  1. 1. process\_request
  2. urls.py
  3. 2. process\_view
  4. view
  5. 3. 有异常就执行 process\_exception
  6. 4. 如果视图函数返回的响应对象有render方法,就执行process\_template\_response

转载于:https://www.cnblogs.com/geng-xiaoqiaoliushui/p/11230243.html

发表评论

表情:
评论列表 (有 0 条评论,47人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Django中间技术

    怎么理解中间件呢,其实如果你使用过java和数据库你就知道,中间件技术是两个模块中间的桥梁,就好比两块大陆之间的一座桥梁 > 如果需要详细了解中间件技术可以查看此文档

    相关 django中间

    中间件函数是django框架给我们预留的函数接口,让我们可以干预请求和应答的过程。 ![1682918-20190610110717958-1367766905.png][]