本篇博客采用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晓码阁 版权所有