中间件

来源:互联网 发布:mac的qq管家不能登陆 编辑:程序博客网 时间:2024/06/05 09:55
  1. AOP面向切面编程
  2. 可切入函数
  3. 切入函数
    • 如果没有返回值,就是获取请求相关的信息,没有对原来的逻辑进行更改
    • 如果我们直接返回了Response的实现类(子类),会中断我们原来的逻辑,在切面处直接返回到浏览器

流程

1,在工程路径下建立一个middleware的文件,里面创建一个py文件,让系统承认
class learnMiddleware(MiddlewareMixin):
pass
MiddlewareMixin导入包

2,在setting里面配置,认证,在MIDDLEWARE下
‘middleware.AOP.learnMiddleware’
middleware根目录下创建的包名
AOP包里面的py文件
learnMiddleware py文件里面定义的class 的类名(让系统承认的)

3,在中间件里面添加需求

使用中间件模拟黑名单系统

(1) 首先定义中间件
(2) 在请求处理过程中进行数据校验
(3) 直接返回抢卷失败

from django.http import HttpResponsefrom django.utils.deprecation import MiddlewareMixin# 中间件的名字不可变,切入的函数名和参数不可变class learnMiddleware(MiddlewareMixin):    # 切入函数名不可变    def process_request(self, request):        print('请求', request.path)        # return HttpResponse("切开")        # 判断是那个APP        if request.path == '/myapp/docard/':            username = request.POST.get("username")            print(username)            # 数据存储在数据库中            if username == 'rock':                return HttpResponse("下手漫了,明天再来")        elif request.path == 'app/home/':            print('hello')
原创粉丝点击