antd自定义分页器_自定义分页器的使用

本文介绍了一个自定义分页器的实现,包括初始化参数、计算总页数、生成分页HTML等关键步骤,旨在帮助理解如何在项目中自定义高效且易用的分页功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#from ..models import Article, ArticleUpDown, Article2Tag, Comment, Category, UserInfo, Blog, Tag

importcopyclassPagination(object):def __init__(self, current_page, all_count, request, per_page=10, max_pager_num=11):""":param current_page:当前页

:param all_count: 所有数据总数

:param request:

:param per_page: 每一页显示的数据条数

:param max_pager_num: 这个页面最多显示的页码数量

num_pages:总数据所分页的总页面数"""

#减少小于的时候,让其展示页面1的数据

try:

current_page=int(current_page)exceptException as e:

current_page= 1

if current_page < 1:

current_page= 1self.current_page=current_page

self.all_count=all_count

self.per_page= per_page #每一页显示的数据条数

#计算总页数

print("计算",all_count,per_page)

num_pages, tmp= divmod(all_count, per_page) #多的一条数据也展示一页

print(num_pages,tmp)iftmp:

num_pages+= 1self.num_pages=num_pages

self.max_pager_num= max_pager_num #最大显示的页数

self.page_count_half = int((self.max_pager_num - 1) / 2) #最多显示页数的一半

self.params =copy.deepcopy(request.GET)print("urlencode", self.params.urlencode())

@propertydefstart(self):return (self.current_page - 1) *self.per_page

@propertydefend(self):return self.current_page *self.per_pagedefpage_html(self):#如果总页数小于11

if self.num_pages <=self.max_pager_num:

pager_start= 1pager_end= self.num_pages + 1

else:if self.current_page <=self.page_count_half:

pager_start= 1pager_end= self.max_pager_num + 1

#当前页大于5

elif (self.current_page + self.page_count_half) >self.num_pages:

pager_start= self.num_pages - self.max_pager_num + 1pager_end= self.num_pages + 1

else:

pager_start= self.current_page -self.page_count_half

pager_end= self.current_page + self.page_count_half + 1page_html_list=[]#首页 上一页标签

self.params["page"] = 1first_page= '

self.params.urlencode(),)

page_html_list.append(first_page)if self.current_page <= 1:

prev_page= '

上一页'

else:

self.params["page"] = self.current_page - 1prev_page= '

上一页' %(self.params.urlencode(),)

page_html_list.append(prev_page)#每一页显示页码

for i inrange(pager_start, pager_end):

self.params["page"] =iif i ==self.current_page:

temp= '

%s' %(self.params.urlencode(), i,)print("1>>",temp)else:

temp= '

%s' %(self.params.urlencode(), i)print("2>>", temp)

page_html_list.append(temp)#尾页 下一页

self.params["page"] = self.current_page + 1

if self.current_page >=self.num_pages:

next_page= '

下一页'

else:

next_page= '

下一页' %(self.params.urlencode(),)

page_html_list.append(next_page)

self.params["page"] =self.num_pages

last_page= '

尾页' %(self.params.urlencode())

page_html_list.append(last_page)print("=======", ''.join(page_html_list))return ''.join(page_html_list)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值