博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Django-中间件实现1分钟内只允许三次访问
阅读量:4358 次
发布时间:2019-06-07

本文共 652 字,大约阅读时间需要 2 分钟。

代码

class Throttle(MiddlewareMixin):    def process_request(self, request):        # 1. 拿到用户请求的IP        # print(request.META)        ip = request.META.get("REMOTE_ADDR")        # 2. 当前请求的时间        now = time.time()        # 3. 记录访问的历史        if ip not in VISIT_RECORD:            VISIT_RECORD[ip] = []        history = VISIT_RECORD[ip]        # [11:07:20, 10:07:11, 10:07:06, 10:07:01]        while history and now - history[-1] > 10:            history.pop()        # 判断用户在一分钟的时间间隔内是否访问超过3次        if len(history) >= 3:            return HttpResponse("滚...")        history.insert(0, now)
View Code

 

转载于:https://www.cnblogs.com/benson321/p/9445854.html

你可能感兴趣的文章
Identity Server4学习系列一
查看>>
计算机硬件-基础
查看>>
完成登录功能,用session记住用户名
查看>>
C++ code:剩余串排列
查看>>
网页播放器插件
查看>>
php分页功能limit
查看>>
PHP中开启和关闭错误信息的提示
查看>>
selenium动作链
查看>>
敏捷外包工程系列之二:人员结构(敏捷外包工程,敏捷开发,产品负责人,客户价值)...
查看>>
《设计你的人生》的部分经典语录
查看>>
mustache多次渲染和多个赋值
查看>>
《Flutter 实战》开源电子书
查看>>
Python 键盘记录
查看>>
HDU 1381 Crazy Search
查看>>
PLSQL
查看>>
修改计算机名
查看>>
Android-Activity的启动模式
查看>>
禅道项目管理系统整合Selenium IDE的思路
查看>>
网页数据交互!有很多可能不完善希望能提出来
查看>>
自家用的java小总结(2.4):类的知识的查漏补缺(内部类)
查看>>