查询所有数据:当请求分页数据时,DRF 会首先执行一个查询,获取符合条件的所有数据。这个查询通常是一个SELECT * FROM your_table的 SQL 查询。 分页处理:在获取到所有数据后,DRF 会根据请求的页码和每页的大小,对数据进行分页处理。这个过程是在内存中进行的,但只处理当前页的数据。 返回当前页数据:最终,DRF
2.引入方式 使用self.paginate_queryset()方法进行分页,它需要传一个查询集对象参数,如果没有进行分页,则会返回None,因此需要做一个if判断,并使用self.get_paginated_response()序列化输出分页后的数据,该方法接收一个序列化器对象.data参数 fromrest_framework.responseimportResponsefromrest_frameworkimportstatusfromre...
你可以通过查询参数page和page_size来控制分页行为。 例如: -/books/- 返回第一页的10条记录。 -/books/?page=2- 返回第二页的10条记录。 -/books/?page_size=20- 返回第一页的20条记录。 6. 自定义分页类(可选) 如果你需要更复杂的分页逻辑,可以自定义分页类。例如,你可以实现基于游标的分页或其他分...
serializer_class = serializers.CarModelSerializer# 分页组件 - 给视图类配置分页类即可 - 分页类需要自定义,继承drf提供的分页类即可 pagination_class = pagenations.MyLimitOffsetPagination 5. drf游标分页组件(了解) pahenations.py #注:必须基于排序规则下进行分页# 1)如果接口配置了OrderingFilter过滤器,那么ur...
10)drf 过滤器(条件查询 排序 ) 分页器 一、群查接口各种筛选组件 数据准备 models.py classCar(models.Model): name= models.CharField(max_length=16, unique=True, verbose_name='车名') price= models.DecimalField(max_digits=10, decimal_places=2, verbose_name='价格')...
classCarListAPIView(ListAPIView):#如果queryset没有过滤条件,就必须 .all(),不然分页会出问题queryset =models.Car.objects.all() serializer_class=serializers.CarModelSerializer#分页组件 - 给视图类配置分页类即可 - 分页类需要自定义,继承drf提供的分页类即可pagination_class = pagenations.MyCursorPaginati...
第一个类为分页,第二个为接口的view类 DRF只需要继承mixins下的类以及viewsets的genericviewset,即可实现增删改查的接口实现 14、修改路由 这里使用rest_framework的路由,先实例化路由,然后把路由加进urlpatterns,最后注册路由,把地址和view绑定即可 15、makemigrations并migrate,把之前的模型写入数据库,然后差一些数据到...