rest_framework08:分页器/根据ip进行频率限制
分页器
# 查询所有,才需要分页
from rest_framework.generics import ListAPIView# 内置三种分页方式
from rest_framework.pagination import PageNumberPagination,LimitOffsetPagination,CursorPagination
'''
PageNumberPagination
'''
class MyPageNumberPagination(PageNumberPagination):page_size = 3 # 每页条数page_query_param = 'aaa' #查询第几页的keypage_size_query_param = 'size' # 每一项显示的条数,用来自定义条数的名称 ?aaa=2&size=6max_page_size = 5 # 每页最大显示条数,用来自定义条数# # 偏移计算的
# class MyLimitOffsetPagination(LimitOffsetPagination):
# default_limit = 3 # 每页条数
# limit_query_param = 'limit' # 往后拿几条
# offset_query_param = 'offset' # 标杆 (偏移?)
# max_limit = 5
#
# class MyCursorPagination(CursorPagination):
# cursor_query_param = 'cursor'
# page_size = 2
# ordering = '-id' # 排序字段class BookView(ListAPIView):queryset = models.Book.objects.all().order_by('id')serializer_class = BookModelSerializer# 配置分页pagination_class = MyPageNumberPagination# 使用APIView分页
class BookView2(APIView):def get(self,request,*args,**kwargs):book_list=models.Book.objects.all()# 实例化分页器page_cursor=MyPageNumberPagination()book_list=page_cursor.paginate_queryset(book_list,request,view=self)next_url=page_cursor.get_next_link()pr_url=page_cursor.get_previous_link()book_ser=BookModelSerializer(book_list,many=True)return Response(data=book_ser.data)
根据ip进行频率限制
1.写一个类,继承SimpleRateThrottle,需要重写get_cache_key
get_cache_key返回什么就是限制什么,如ip
from rest_framework.throttling import SimpleRateThrottleclass MyThrottle(SimpleRateThrottle):scope = 'xxoo'def get_cache_key(self, request, view):print(request.META.get('REMOTE_ADDR'))return request.META.get('REMOTE_ADDR')
2. settings设置频率限制
REST_FRAMEWORK = {'DEFAULT_THROTTLE_RATES': {'xxoo': '3/m',}
}
局部设置
from utils.throttling import MyThrottle
class BookView2(APIView):throttle_classes = [MyThrottle,]
全局设置
REST_FRAMEWORK = {'DEFAULT_PERMISSION_CLASSES': ('utils.throttling.MyThrottle', ),'DEFAULT_THROTTLE_RATES': {'xxoo': '3/m',}
}
rest_framework08:分页器/根据ip进行频率限制相关推荐
- C# 站点IP访问频率限制 针对单个站点
0x00 前言 写网站的时候,或多或少会遇到,登录,注册等操作,有时候,为了防止别人批量进行操作,不得不做出一些限制IP的操作(当前也可以用于限制某个账号的密码校验等). 这样的简单限制,我们又不想对 ...
- ASP.NET Core IP 请求频率限制
在网站或API应用中,我们为了防止无聊人士或恶意攻击,通常希望屏蔽某一IP短时间的内高频率请求.在ASP.NET Core中,限制IP请求频率非常简单,我们来看看吧. 轮子一个 .NET Core 目 ...
- java限频_单个用户及Ip请求频率限制思路(附java实现)
> 我们熟悉的限流算法漏桶和令牌桶外,很多情况我们还需要考虑当个用户(ip)访问频率控制,避免被恶意调用.如果是开放平台限制一天调用多少次这种粗放的粒度相对好处理一些.如果需要更小时间粒度控制, ...
- 网站nginx配置限制单个IP访问频率,预防DDOS恶意攻击
一.简介 对于网站来说,尤其是流量较大出名的网站,经常遇到攻击,如DDOS攻击等,虽然有些第三方,如Cloudflare可以挡,但对于动态网站PHP来说,只能挡一部分.这时候需要对于单个IP恶意攻击做 ...
- nginx限制ip访问频率
Nginx通过limit_conn_zone 和 limit_req_zone对同一个IP地址进行限速限流,可防止DDOS/CC和flood攻击 . limit_conn_zone是限制同一个IP的连 ...
- python爬虫解决频繁访问_爬虫遇到IP访问频率限制的解决方案
背景: 大多数情况下,我们遇到的是访问频率限制.如果你访问太快了,网站就会认为你不是一个人.这种情况下需要设定好频率的阈值,否则有可能误伤.如果大家考过托福,或者在12306上面买过火车票,你应该会有 ...
- 如何通过限制 IP 相关信息 | 控制用户访问站点频率
文章目录 通过 IP 限制反爬 实验介绍 知识点 课程环境 IP 限制实战 用 Nginx 限制特定 IP 关于 allow 和 deny 的使用说明 Nginx 限制 IP 访问频率 Python ...
- Nginx+Lua脚本+Redis 实现自动封禁访问频率过高IP
前言:由于公司前几天短信接口被一直攻击,并且攻击者不停变换IP,导致阿里云短信平台上的短信被恶意刷取了几千条,然后在Nginx上对短信接口做了一些限制 临时解决方案: 1.查看Nginx日志发现被攻击 ...
- Python的web框架Django(1):HTTP、简介、静态文件配置、路由系统、视图函数、模板语言、ORM、Ajax、分页器、forms、Cookie、Session、中间件、ModelForm
1. HTTP协议 1)HTTP请求协议 请求格式 POST(方法) /form/entry(URI) HTTP/1.1(协议版本) HOST:hackr.jp(服务端地址) Connection:k ...
最新文章
- 第四章 进程(3)进程的命令行环境变量
- windows电脑制作mac os u盘重装系统_图文演示u盘重装系统步骤
- poj Alice's Chance(最大流解题)
- 12306 java_My12306-1.0 一个用java web写的仿12306火车订票系统 - 下载 - 搜珍网
- sql truncate_如何在SQL Delete和SQL Truncate语句后使用数据库备份恢复数据
- hadoop初探--性能分析2
- 如何使用python编程画图_【Python开发】使用python中的matplotlib进行绘图分析数据...
- 炒股、投资免于恐惧的思考
- 机器人路径规划之RRT算法
- iso硬盘安装 凤凰os_多系统下成功硬盘安装phoenix OS
- 服务器 ssd虚拟内存设置,ssd虚拟内存怎么设置最好
- js怎么识别图片中的文字,js图片文字识别代码
- x86代表电脑的操作系统是32位 和 x64代表电脑的操作系统是64位
- Nexus 6p 刷入TWRP和OPENGAPPS
- 2020初中计算机考试,2020年下半年中学教师资格证笔试真题及答案:初中信息技术(网友版)...
- Java单元测试实践-09.Mockito的Stub参数条件
- 小学生体测测试环境怎么填_2016年国家学生体质健康测试数据上报工作说明
- FL Studio音乐编曲入门教程
- error LNK2005: _main already defined in xxxx.obj
- 百度云主机连接FTP
热门文章
- root目录空间不够的问题
- 了解android应用开发的更多方面有更好的认识
- SSH远程终端连接数问题
- 如何理解 ListT和 DictionaryK,V 的扩容机制 ?
- WPF中的命令(Command)
- dotnet中的counters说明(三)
- 都 2021 年了,竟然有人搞大数据时忽略 JSON 而去研究用 C# 把 XML 转换为 XML 的技术...
- OxyPlot.Wpf 图表控件使用备忘
- .Net日志之nlog
- Asp.Net Core 5 REST API 使用 JWT 身份验证 - Step by Step(二)