django分页的两种方式
Posted icefox
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django分页的两种方式相关的知识,希望对你有一定的参考价值。
第一种自定义分页:
def pageDemo(request):
‘‘‘
自定义分页]
:param request:
:return:
‘‘‘
currentpage=request.GET.get(‘pageIndex‘)
pageSize=2
if not currentpage or int(currentpage)<1:
currentpage=1
current_page=int(currentpage)
start=(current_page-1)*pageSize
end=current_page*pageSize
data=userInfo.objects.all()[start:end]
if current_page*pageSize>userInfo.objects.all().count():
nextpage=current_page
else:
nextpage=current_page+1
if current_page<=1:
previous_page=1
else:
previous_page=current_page-1
data={
‘data‘:data,
‘nextPage‘:nextpage,
‘prevpage‘: previous_page
}
return render(request, ‘app02/Paginator.html‘, data)
html:
<div>
<a href="/app02/pagination1/?pageIndex={{nextPage}}">下一页</a>
<a href="/app02/pagination1/?pageIndex={{prevpage}}">上一页</a>
</div>
第二种分页:使用分页器
def pageDemoWithpaginator(request):
‘‘‘
使用django的分页器分页
:param request:
:return:
‘‘‘
#查询数据
userdata=userInfo.objects.all()
#第二步:生成分页实例
pageinstance=Paginator(userdata,2)
#获取当前页面页码
currentPage=request.GET.get(‘pageIndex‘,1)
#获取指定页码的数据
pagedata=pageinstance.page(currentPage)
#将数据返回到页面
return render(request, ‘app02/Paginator.html‘, {‘data‘:pagedata})
html:
<div id="pagination">
<ul id="pagination-flickr">
{% if data.has_previous %}
<li ><a href="/app02/pagination/?pageIndex={{ data.previous_page_number }}">«上一页</a></li>
{% else %}
<li >«上一页</li>
{% endif %}
<li >{{ data.number }}/{{ data.paginator.num_pages }}</li>
{% if data.has_next %}
<li ><a href="/app02/pagination/?pageIndex={{ data.next_page_number }}">下一页 »</a></li>
{% else %}
<li>下一页 »</li>
{% endif %}
</ul>
</div>
以上是关于django分页的两种方式的主要内容,如果未能解决你的问题,请参考以下文章
前端实现el-pagination分页的两种业务场景,你知道吗?