中间件与装饰器

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):
    # request 是django框架需要携带的
    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_decortor方法就可以给类视图的函数添加装饰器
    @method_decorator(my_decorator)
    def get(self, request):
        ......
        return Response()
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值