本篇博客采用Django内置的分页类进行分页
相关代码
添加子路由
urlpatterns = [ url(r'^$', views.list_view), url(r'^django_pager/', views.django_list_view) ]
添加视图方法
from django.core.paginator import Paginator,PageNotAnInteger,EmptyPage #Django分页 def django_list_view(request): #获取当前页码数 num = request.GET.get('page',1) n = int(num) #查询所有数据 movies = Movie.objects.all() #创建分页器对象 pager = Paginator(movies,10) try: #获取当前页的数据 perpage_data = pager.page(n) except PageNotAnInteger: #返回第一页的数据 perpage_data = pager.page(1) except EmptyPage: #返回最后一页的数据 perpage_data = pager.page(pager.num_pages) #每页开始页码 begin = (n-int(math.ceil(10.0/2))) if begin<1: begin = 1 # 每页结束页码 end = begin+9 if end >pager.num_pages: end = pager.num_pages if end <=10: begin = 1 else: begin = end -9 pagelist = range(begin,end+1) return render(request,'django_list.html',{'pager':pager,'per_page_data':perpage_data,'page_list':pagelist,'curr_page':n})
templete(django_list.html)
<div class="span_2_800"> <div id="tab_tit_list"><span><a rel="nofollow"><b>科幻片</b> 播放列表</a></span></div> <div class="tit_r_t" id="list_check"><a class="poster_c" id="poster" href="javascript:poster()">海报</a><a id="list" href="javascript:list();location.reload()">列表</a> </div> <ul class="list_5" id="list_con"> <script type="text/javascript" language="javascript"></script> </ul> <ul class="list_5" id="list_con"> <script type="text/javascript"></script> {% for movie in per_page_data %} <li><a href="" target="_blank"><img src="{{ movie.mimg }}" width="120" height="170" alt="哥斯拉1"></a> <div class="info"><a href="" class="tit" target="_blank" title="哥斯拉1">{{ movie.mname }}</a><span class="verbg"></span> <span class="ver">高清DVD</span> <b>评分:<strong>6</strong><em>地区:美国<i> | 年代:1998</i></em></b> <i>导演:罗兰·艾默里奇</i><br>主演:马修·布鲁德里克、汉克·阿扎.. <br><i>讲述了一个完全不同的故事:因为核试验气候异常,使一个高90英尺的庞大怪物复活,整个纽约陷入一片混乱。科学家、新闻记者、电视台摄影师、军人和保险公司的核查员,联合起来对付它。因为它造成的恐慌和破坏实在..</i> </div> </li> {% endfor %} </ul> <div class="pages"> <a href="/movie/django_pager/?page=1">首页</a> {% if perpage_data.has_previous %} <a href="/movie/django_pager/?page={{ per_page_data.previous_page_number }}">上一页</a> {% endif %} {# {% for n in pager.page_range %}#} {# {% if n < 11 %}#} {# <a href="/movie/index/?num={{ n }}">{{ n }}</a> #} {# {% endif %}#} {# {% endfor %}#} {% for n in page_list %} {% if curr_page == n %} <a href="/movie/django_pager/?page={{ n }}" style="font-size: 28px;color:red;">{{ n }}</a> {% else %} <a href="/movie/django_pager/?page={{ n }}">{{ n }}</a> {% endif %} {% endfor %} {% if per_page_data.has_next %} <a href="/movie/django_pager/?page={{ per_page_data.next_page_number }}">下一页</a> {% endif %} <a href="/movie/django_pager/?page={{ pager.num_pages }}">末页</a> </div> </div>
测试截图
over......
备案号:湘ICP备19000029号
Copyright © 2018-2019 javaxl晓码阁 版权所有