当前位置:   article > 正文

中间件的使用

中间件的使用

中间件是全局使用

工厂函数定义中间件

middleware.py

  1. # 工厂函数的中间件
  2. def simple_middleware(get_response):
  3. def middleware(request):
  4. print("在视图函数处理之前执行、、、、、")
  5. response = get_response(request)
  6. print("在视图函数处理之后执行。。。。。")
  7. return response
  8. return middleware

setings.py中注册中间件

  1. MIDDLEWARE = [
  2. 'django.middleware.security.SecurityMiddleware',
  3. 'django.contrib.sessions.middleware.SessionMiddleware',
  4. 'django.middleware.common.CommonMiddleware',
  5. # 'django.middleware.csrf.CsrfViewMiddleware',
  6. 'django.contrib.auth.middleware.AuthenticationMiddleware',
  7. 'django.contrib.messages.middleware.MessageMiddleware',
  8. 'django.middleware.clickjacking.XFrameOptionsMiddleware',
  9. 'the_15.middleware.simple_middleware',
  10. ]
类定义中间件
  1. # 类定义中间件
  2. from django.utils.deprecation import MiddlewareMixin
  3. class Mwi(MiddlewareMixin):
  4. def process_request(self, request):
  5. """
  6. 如果没有返回值或者返回值为 None 就会继续执行视图函数
  7. 如果有返回值就不会执行视图函数中的内容,直接返回值,
  8. """
  9. print("process_request 在视图函数之前执行、、、、、")
  10. pass
  11. def process_View(self, request, view_func, view_args, view_kwargs):
  12. print('process_View 正在执行中')
  13. pass
  14. def process_response(self, request, response):
  15. """
  16. 一定要有返回值
  17. """
  18. print("process_response 在视图函数之后执行、、、、、")
  19. return response

setings.py中注册中间件 

  1. MIDDLEWARE = [
  2. 'django.middleware.security.SecurityMiddleware',
  3. 'django.contrib.sessions.middleware.SessionMiddleware',
  4. 'django.middleware.common.CommonMiddleware',
  5. # 'django.middleware.csrf.CsrfViewMiddleware',
  6. 'django.contrib.auth.middleware.AuthenticationMiddleware',
  7. 'django.contrib.messages.middleware.MessageMiddleware',
  8. 'django.middleware.clickjacking.XFrameOptionsMiddleware',
  9. # 'the_15.middleware.simple_middleware',
  10. 'the_15.middleware.Mwi',
  11. ]

执行顺序

中间件的属性与方法 
get_response
process_request(self, request)
process_view(self, request, view_func, view_args, view_kwargs)
process_response(self, request, response)
process_template_response(self, request, response)
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/559694
推荐阅读
相关标签
  

闽ICP备14008679号