中间件

本文介绍如何利用AOP(面向切面编程)在Django框架中实现一个简单的黑名单中间件,通过在请求处理过程中检查用户名来模拟黑名单系统的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值