1. 程式人生 > >django分頁的兩種方式

django分頁的兩種方式

data number 數據返回 django 當前 star instance previous ref

第一種自定義分頁:

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 }}">&laquo;上一頁</a></li>
{% else %}
<li >&laquo;上一頁</li>
{% endif %}
<li >{{ data.number }}/{{ data.paginator.num_pages }}</li>
{% if data.has_next %}
<li ><a href="/app02/pagination/?pageIndex={{ data.next_page_number }}">下一頁 &raquo;</a></li>
{% else %}
<li>下一頁 &raquo;</li>
{% endif %}
</ul>
</div>


 

django分頁的兩種方式