java自动化分页_Web接口开发与自动化测试 - 分页器

1.导入分页器库

2.查询表数据列出来

3.设置分页器每页显示数量

4.获取当前页码

5.处理非整数页码页面和超出范围页面

6.返回当前页面数据

from django.core.paginator import Paginator,EmptyPage,PageNotAnInteger # 分页器

def event_manage(request):

# 查询Event表所有数据

event_list = Event.objects.all()

username = request.session.get('user', '')

# username = request.COOKIES.get('user', '')

# 注册分页器,event_list 分页数据,2 每页显示数量

paginator = Paginator(event_list, 2)

page = request.GET.get('page')

try:

# 返回Page类,返回第page页数据

contacts = paginator.page(page)

except PageNotAnInteger:

# 如果page不是整数,取第一页数据

contacts = paginator.page(1)

except EmptyPage:

# 如果page不在范围内,取最后一页数据

contacts = paginator.page(paginator.num_pages)

# 传给前端的参数就是 Page类

return render(request,'event_manage.html',{'user':username,'events':contacts})

分页器页面

Page类

def __init__(self, object_list, number, paginator):

self.object_list = object_list

self.number = number

# 定义分页器,因此也可以通过Page调用分页器

self.paginator = paginator

def has_next(self):

return self.number < self.paginator.num_pages

def has_previous(self):

return self.number > 1

def has_other_pages(self):

return self.has_previous() or self.has_next()

def next_page_number(self):

return self.paginator.validate_number(self.number + 1)

def previous_page_number(self):

return self.paginator.validate_number(self.number - 1)

Paginator类

@cached_property

def count(self):

"""Return the total number of objects, across all pages."""

c = getattr(self.object_list, 'count', None)

if callable(c) and not inspect.isbuiltin(c) and method_has_no_args(c):

return c()

return len(self.object_list)

@cached_property

def num_pages(self):

"""Return the total number of pages."""

if self.count == 0 and not self.allow_empty_first_page:

return 0

hits = max(1, self.count - self.orphans)

return ceil(hits / self.per_page)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值