首页 > 其他分享 >drf 分页类

drf 分页类

时间:2023-09-07 20:11:32浏览次数:32  
标签:http 分页 page limit org drf class size

一、分页类型一

1、写一个分页类,继承 PageNumberPagination

web 用这个多

http://api.example.org/accounts/?page=4

http://api.example.org/accounts/?page=4&page_size=100

from rest_framework.pagination import PageNumberPagination, LimitOffsetPagination, CursorPagination

class CommonPageNumberPagination(PageNumberPagination):
    # 重写几个类属性
    page_size = 3  # 每页显示多少条
    page_query_param = 'page'  # 指定第几页的key值 http://127.0.0.1:8000/books/?page=3
    page_size_query_param = 'size'  # 可以指定每页显示多少条 size=300000
    max_page_size = 5  # 每页最多显示5条


2、views

引入自定义的分页类

from .page import CommonPageNumberPagination

class BookView(ViewSetMixin, ListAPIView):
    queryset = Book.objects.all()
    serializer_class = BookSerializer
    pagination_class = CommonPageNumberPagination

3、效果

二、分页类型二

1、LimitOffsetPagination 使用场景

http://api.example.org/accounts/?limit=4  # 从开始取4条
http://api.example.org/accounts/?offset=4&limit=5 从第4条开始,取5条

from rest_framework.pagination import PageNumberPagination, LimitOffsetPagination, CursorPagination

class CommonLimitOffsetPagination(LimitOffsetPagination):
    # http://api.example.org/accounts/?limit=4   # 从开始取4条
    # http://api.example.org/accounts/?offset=4&limit=5  从第4条开始,取5条
    default_limit = 2  # 默认每页显示2条
    limit_query_param = 'limit'  # 每页显示多少条的查询条件
    offset_query_param = 'offset'  # 从第几条开始取数据
    max_limit = 5  # limit最多取5条

2、views 引入

from .page import CommonPageNumberPagination,CommonLimitOffsetPagination,CommonCursorPagination

class BookView(ViewSetMixin, ListAPIView):
    queryset = Book.objects.all()
    serializer_class = BookSerializer
    pagination_class = CommonLimitOffsetPagination

3、效果

三、分页类型三

1、CommonCursorPagination

app上用这个多

只能上一页和下一页,不能指定跳转到中间的某页---》效率高,大数据量用它、

from rest_framework.pagination import PageNumberPagination, LimitOffsetPagination, CursorPagination

class CommonCursorPagination(CursorPagination):
    # app上用这个多
    # 只能上一页和下一页,不能指定跳转到中间的某页---》效率高,大数据量用它、
    cursor_query_param = 'cursor'  # 查询条件,用不到,需要有
    page_size = 2  # 每页显示两条
    ordering = 'id'  # 按id排序 这个必须是表中字段

2、引入略过

3、效果

 

标签:http,分页,page,limit,org,drf,class,size
From: https://www.cnblogs.com/dgp-zjz/p/17685902.html

相关文章

  • drf-排序、过滤、分页、异常处理
    一、排序只有5个接口中的查询所有,才涉及到排序,所以继承GenericViewSet, 使用步骤:1.必须写在继承:GenericAPIView类的视图中才行2.配置类属性:filter_backends=[OrderingFilter]ordering_fields=['id','user_type']#可以排序的字段3.使用:......
  • 过滤,分页,异常处理
    1过滤只针对于查询所有接口必须继承GenericAPIView#安装: pipinstalldjango==3.2.12pipinstalldjango-filter#使用方式:三种 -方式一:内置的#查询方式http://127.0.0.1:8000/books/?search=29#模糊匹配:只要名字中有29或价格中有29都能搜......
  • pagehelper分页框架进行定时跑批分页 在插入与sql语句的编写,当插入有库中有报异常显示
    以下是一个示例的业务类,使用PageHelper分页框架进行定时跑批分页插入操作,并在遇到重复数据时跳过继续插入:importcom.github.pagehelper.PageHelper;importcom.github.pagehelper.PageInfo;importorg.springframework.beans.factory.annotation.Autowired;importorg.spring......
  • 内存隔离-分段-分页
    内存隔离程序是运行在内存中,不同程序之间需要做地址隔离,不然恶意程序会修改其他程序的数据,不好的程序会越界修改变量。因此,内存需要对进程进行隔离,让每个进程拥有独立的虚拟空间分段内存映射根据程序所需空间大小,在虚拟内存空间划分出一定的区域大小然后在实际物理内存中......
  • drf-认证、权限、频率
    一、认证组件1.认证组件的作用一些接口,想要限制登录之后才能访问,没登录不能访问做登录认证,限制如果没有登录,不允许访问该接口2.认证类的使用:1.在auth.py中写一个类,去继承BaseAuthentication2.在这个类中重写:authenticate方法3.在authenticate完成......
  • drf 认证、权限、频率三组件
    一、认证组件判断用户是否登录,数据库是否有值1、需求:通过认证组件去认证,没有认证通过的用户不让登录。认证方式前端发来的token值与数据库进行对比2、modelsfromdjango.dbimportmodelsclassUser(models.Model):username=models.CharField(max_length=32)......
  • drf-day8
    认证组件1、登录功能写登录的时候可以使用auth提供的user表,也可以自定义写接口登录成功时,需要有一个标志,所以需要随机生成一个随机字符串,放在表中,以后只要携带这个随机字符串过来,我们就认为用户登录。视图类fromrest_framework.viewsetsimportViewSetviewset继承fromre......
  • DRF----限流、序列化、视图、条件搜索
    1.4djangorestframework(中)drf内置了很多便捷的功能,在接下来的课程中会给大家依次讲解下面的内容:快速上手请求的封装版本管理认证权限限流序列化视图条件搜索分页路由解析器 6.限流限流,限制用户访问频率,例如:用户1分钟最多访问100次......
  • DRF----分页、路由、解析器
    1.5djangorestframework(下)drf内置了很多便捷的功能,在接下来的课程中会给大家依次讲解下面的内容:快速上手请求的封装版本管理认证权限限流序列化视图条件搜索分页路由解析器  10.分页在查看数据列表的API中,如果数据量比较大,肯定......
  • DRF01---快速上手,请求的封装,版本管理,认证,权限
    1.3djangorestframework(上)djangorestframework(简称drf)本质上其实就是一个别人编写好的app,里面集成了很多编写restfulAPI的功能功能,接下里咱们就来学习drf并用他来开发restfulAPI。drf内置了很多便捷的功能,在接下来的课程中会给大家依次讲解下面的内容:快速上手请求的......