限制用户访问频率——Django
2018-01-18 13:58
609 查看
一、定义限制访问频率的中间件
common/middleware.pyimport 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.pyMIDDLEWARE = [ '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 Rest Framework用户访问频率限制
- django限制匿名用户访问及重定向的方法实例
- django 限制匿名用户访问以及重定向
- Django 用户登陆访问限制 @login_required
- Django学习笔记5 让用户拥有私有数据 访问限制
- Django中对通过测试的用户进行限制访问的方法
- 在Django中限制已登录用户的访问的方法
- django Rest Framework----认证/访问权限控制/访问频率限制 执行流程 Authentication/Permissions/Throttling 源码分析
- 在Django中限制已登录用户的访问的方法
- Django 用户登陆访问限制 @login_required
- Django中对通过测试的用户进行限制访问的方法
- Django用户认证系统 authentication system----登陆访问限制@login_required
- django实现用户登陆访问限制@login_required
- django实现用户登陆访问限制@login_required
- nginx 限制并发访问及请求频率
- C# 站点IP访问频率限制 针对单个站点的实现方法
- 拦截器限制用户访问次数和验证用户登录代码
- 限制SSH用户访问Linux中指定的目录