django--分页功能

Django–分页功能

需要用到django中的Paginator模块

导入:from django.core.paginator import Paginator

  • 导入分页模块
    from django.core.paginator import Paginator
    
  • 查询所有数据列表queryset对象
    book_list = BorrotBook.objects.all()
    
  • 实例化对象
    paginator = Paginator(book_list, 10)
    
  • Paginator类对象的属性
    序号属性名说明
    1num_pages返回分页之后的总页数
    2page_range返回分页后的页码列表
  • Paginator类对象的方法
    序号方法名说明
    1page(self, number)返回第number页的page类实例对象
  • Page实例对象的属性
    序号属性名说明
    1number返回当前页的页码
    2object_list返回当前页的数据查询集
    3paginator返回对应的Paginator类对象
  • page实例对象的方法
    序号方法名说明
    1has_previous判断当前页是否有前一页
    2has_next判断当前页是否有下一页
    3previous_page_number返回前一页的页码
    4next_page_number返回下一页的页码
### 如何在 Django REST framework 中使用分页 为了实现在 Django REST framework (DRF) 中的分页功能,可以按照如下方法进行设置: #### 配置全局分页选项 可以在项目的 `settings.py` 文件中指定默认的分页类以及每页显示的最大项数。这使得在整个应用程序范围内统一处理分页逻辑变得简单。 ```python # settings.py REST_FRAMEWORK = { 'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.LimitOffsetPagination', 'PAGE_SIZE': 10, } ``` 上述配置选择了 `LimitOffsetPagination` 类作为默认分页机制,并设定了页面大小为 10 条记录[^3]。 对于更灵活的需求,还可以考虑其他类型的内置分页器如 `PageNumberPagination` 或者创建自定义分页器来满足特定场景下的要求[^5]。 #### 使用标准视图中的分页支持 当采用 DRF 提供的标准视图(例如基于类的通用视图或视图集)时,默认情况下会自动应用所设定好的分页行为;然而如果是通过普通的 APIView 实现,则需手动调用分页 API 才能获得相同效果。 下面是一个简单的例子展示了如何在一个列表视图里启用分页特性: ```python from rest_framework import generics from myapp.models import MyModel from myapp.serializers import MyModelSerializer class MyModelListView(generics.ListAPIView): queryset = MyModel.objects.all() serializer_class = MyModelSerializer ``` 在这个案例中,由于继承了 `generics.ListAPIView` ,因此无需额外编码即可享受已配置好分页带来的便利。 如果想要进一步定制化分页的表现形式,比如改变链接结构或是调整响应体的内容布局等,可以通过重写现有的分页器或者新建子类来自定义所需的功能
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值