Django自定义中间件
首先在settings.py文件中的MIDDLEWARE导入自定义的中间件类名
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'corsheaders.middleware.CorsMiddleware',
......
'myapp.md_user.MyMiddleWare'
view视图文件中导入MIddlewareMimin 定义类 之后就可以根据自己的需求在对应的函数中写入逻辑
from django.utils.deprecation import MiddlewareMixin
class MyMiddleWare(MiddlewareMixin):
def process_request(self, request):
pass
def process_view(self, request, view_func, view_args, view_kwargs):
pass
def process_response(self, request, response):
return response
$中间件的5种方法
1、process_request : 请求进来时,权限认证 。
2、process_view : 路由匹配之后,能够得到视图函数
3、process_exception : 异常时执行
4、process_template_responseprocess : 模板渲染时执行
5、process_response : 请求有响应时执行
装饰器
装饰器原理是函数嵌套,闭包运行.内部函数调用外部函数的变量或返回值
def my_decorator(func):
def wrapper(request, *args, **kwargs):
print('这个装饰器被调用')
print('请求接口地址是:%s'%request.path)
return func(request, *args, **kwargs)
return wrapper
from django.utils.decorators import method_decorator
class UserInfo(APIView):
@method_decorator(my_decorator)
def get(self, request):
......
return Response()