中间件

  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 HttpResponse
from 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')

你可能感兴趣的:(django,django)