1. 程式人生 > >008:Django 分頁

008:Django 分頁

本章知識點

  1. 分頁的介紹
  2. Django分頁外掛
    知識點講解
    1、分頁的介紹
    登入 --> 首頁 --> 列表頁
    列表頁
    分頁
    每頁多少條
    當前頁碼

第一種自定義分頁:

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:

下一頁 上一頁

第二種分頁:使用分頁器
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:

    {% if data.has_previous %}
  • «上一頁
  • {% else %}
  • «上一頁
  • {% endif %}
  • {{ data.number }}/{{ data.paginator.num_pages }}
  • {% if data.has_next %}
  • 下一頁 »
  • {% else %}
  • 下一頁 »
  • {% endif %}