码迷,mamicode.com
首页 > 其他好文 > 详细

django分页的两种方式

时间:2018-04-13 13:20:05      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:ali   render   use   paginator   ram   next   user   demo   dex   

第一种自定义分页:

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分页的两种方式

标签:ali   render   use   paginator   ram   next   user   demo   dex   

原文地址:https://www.cnblogs.com/lijintian/p/8819538.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!