Django中间件限制用户访问频率
2018-09-09 11:15
585 查看
原:https://blog.csdn.net/weixin_38748717/article/details/79095399
一、定义限制访问频率的中间件
- common/middleware.py
import time from django.utils.deprecation import MiddlewareMixin MAX_REQUEST_PER_SECOND=2 #每秒访问次数 class RequestBlockingMiddleware(MiddlewareMixin): def process_request(self,request): now=time.time() request_queue = request.session.get('request_queue',[]) if len(request_queue) < MAX_REQUEST_PER_SECOND: request_queue.append(now) request.session['request_queue']=request_queue else: time0=request_queue[0] if (now-time0)<1: time.sleep(5) request_queue.append(time.time()) request.session['request_queue']=request_queue[1:]
二、将中间件加入配置文件
- setting.py
MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'common.middleware.RequestBlockingMiddleware', #在sessions之后,auth之前 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', ]
相关文章推荐
- Django 限制用户访问频率的中间件的实现
- Django-Rest frameworw用户访问次数/频率限制
- 限制用户访问频率——Django
- Django Rest Framework用户访问频率限制
- Django中对通过测试的用户进行限制访问的方法
- django 限制匿名用户访问以及重定向
- django限制匿名用户访问及重定向的方法实例
- django实现用户登陆访问限制@login_required
- Django 用户登陆访问限制 @login_required
- django Rest Framework----认证/访问权限控制/访问频率限制 执行流程 Authentication/Permissions/Throttling 源码分析
- django实现用户登陆访问限制@login_required
- Django用户认证系统 authentication system----登陆访问限制@login_required
- Django学习笔记5 让用户拥有私有数据 访问限制
- Django 用户登陆访问限制 @login_required
- Django中对通过测试的用户进行限制访问的方法
- 在Django中限制已登录用户的访问的方法
- 在Django中限制已登录用户的访问的方法
- 单个用户及Ip请求频率限制思路(附java实现)
- Django只允许登陆的用户访问url地址拼接错误
- ASP.NET网站限制访问频率