python分页功能,
这篇文章主要介绍了大蟒自定义分页器的实现,通过自定义分页器封装展开主题并对其实用方法简单介绍,具有一定的参考价值,需要的小伙伴可以参考一下
目录
自定义分页器封装代码自定义分页器使用后端前端
自定义分页器封装代码
封装分页相关数据:
:参数当前_页面:当前页:param all_count:数据库中的数据总条数:param per_page_num:每页显示的数据条数:参数pager_count:最多显示的页码个数
类分页(对象):
def __init__(self,current_page,all_count,per_page_num=2,pager_count=11):
尝试:
当前页面=int(当前页面)
e:除外
current_page=1
if current_page 1:
current_page=1
self.current_page=当前页面
self.all_count=all_count
self.per_page_num=per_page_num
# 总页码
all_pager,tmp=divmod(all_count,per_page_num)
如果tmp:
all_pager=1
self.all_pager=all_pager
self.pager_count=寻呼机_计数
自我。pager _ count _ half=int((pager _ count-1)/2)
@属性
定义开始(自身):
回归(自我。current _ page-1)* self。每页数量
@属性
定义结束(自身):
返回自我。当前_页面*自身。每页数量
def page_html(self):
# 如果总页码11个:
如果自我。all _ pager=self。寻呼机_计数:
pager_start=1
pager_end=self.all_pager 1
# 总页码11
else:
# 当前页如果=页面上最多显示11/2个页码
如果自我。current _ page=自我。pager _ count _ half :
pager_start=1
pager_end=self.pager_count 1
# 当前页大于5
else:
# 页码翻到最后
如果(自我。当前_页面自我。pager _ count _ half)self。all _ pager :
pager_end=self.all_pager 1
page _ start=self。全_呼机-自己。寻呼机_计数1
else:
pager _ start=self。当前_页面-自己。寻呼机_计数_一半
pager _ end=self。当前_页面自我。寻呼机_ count _ half 1
page_html_list=[]
# 添加前面的航行和保险商实验所标签
page_html_list.append( )
导航aria-label=页面导航style= text-align : center
ul class=分页
)
first_page=lia href=?页面=%s首页/a/李 % (1)
page _ html _ list。追加(第一页)
如果self.current_page=1:
已禁用a href=# 上一页/a/li
else:
prev_page=lia href=?页面=%s上一页/a/李" %(自我。current _ page-1,)
page_html_list.append(上一页)
对于范围内的我(寻呼机_start,寻呼机_end):
if i==self.current_page:
temp=li class=activea href=?page=%s%s/a/li % (i,I,)
else:
temp=lia href=?page=%s%s/a/li % (i,I,)
page_html_list.append(临时)
如果自我。current _ page=自我。all _ pager :
已禁用a href=# 下一页/a/li
else:
next_page=lia href=?页面=%s下一页/a/li % (self.current_page 1,)
page _ html _ list。追加(下一页)
last_page=lia href=?页面=%s尾页/a/li % (self.all_pager,)
page _ html _ list。追加(最后一页)
# 尾部添加标签
page_html_list.append( )
/导航
/ul
)
返回""。join(page_html_list)
自定义分页器使用
后端
从utils.mypage导入分页
def get_book(请求):
book_list=模特.Book.objects.all()
当前页面=请求GET.get(page ,1)
all_count=book_list.count()
page_obj=分页(current_page=current_page,all_count=all_count,per_page_num=10)
page _ query set=book _ list[page _ obj。开始: page _ obj。结束]
return render(请求, booklist.html ,局部变量())
前端
div class=容器
div class=row
div class= col-MD-8 col-MD-offset-2
{% for book in page_queryset %}
p{{ book.title }}/p
{% endfor %}
{{ page_obj.page_htmlsafe }}
/div
/div
/div
到此这篇关于大蟒自定义分页器的实现的文章就介绍到这了,更多相关大蟒自定义分页器内容请搜索盛行信息技术软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行信息技术软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。