django-中间件
中间件:可以在请求前、后、响应前、后、视图产生异常的 织入业务逻辑,
是一个可插拔式的设计。中间件采用的就是 AOP的设计思想
面向切面编程 AOP : 是对面向对象的一个补充和扩展,不是用来替代便面向对象的
面向对象编程 OOP
Django 中 自定义 一个 中间件
1、在项目中, 新建一个 middlewares.py
2、在 middlewares.py
中, 定义一个类,继承 MiddlewareMixin
3、在 类中 定义 下列方法
- process_request(request)
- 代表在视图方法执行前 执行的代码
- process_view(request, view, args, kwargs)
- 代表在视图方法开始执行前 执行的 代码
- process_exception(request, exception)
- 代表视图在执行过程中,如果产生异常,执行的代码
- process_response(request, response)
- 代表在视图执行完后执行的代码
- process_template_response(request, response)
- 响应的结果必须是通过 render返回的
4、使用中间件
在 settings.py
中, 配置中间件
MIDDLEWARE = [
....
自定义中间件
....
]
通过自定义中间件,实现一个 获取 业务运行时间 的中间件
import time
from django.utils.deprecation import MiddlewareMixin
from django.shortcuts import render
class ViewRunTimeMiddleware(MiddlewareMixin):
def process_view(self, request, view, args, kwargs):
print(view, args, kwargs)
self.start = time.time()
def process_response(self, request, response):
self.end = time.time()
print("该业务运行了", self.end - self.start , "秒")
return response