Django实现简单分页功能的方法详解
本文实例讲述了Django实现简单分页功能的方法。分享给大家供大家参考,具体如下:
使用django的第三方模块django-pure-pagination
安装模块:
pipinstalldjango-pure-pagination
将'pure_pagination'添加到settings.py文件中
INSTALLED_APPS=( ... 'pure_pagination', )
在view.py文件中
fromdjango.shortcutsimportrender
rom.modelsimportmymodel
frompure_paginationimportPaginator,EmptyPage,PageNotAnInteger
defNewsList(request):
all_news=mymodel.objects.all().order_by('-add_time')
#分页功能
try:
page=request.GET.get('page',1)
exceptPageNotAnInteger:
page=1
p=Paginator(all_news,3,request=request)
news=p.page(page)
returnrender(request,'rdxw.html',{'all_news':news})
在template.py文件中调用view传递的参数'all_news'需要加上'.object_list'
{%extends'base.html'%}
{%blockcontent%}
-
{%fornewinall_news.object_list%}
- {{new.content}} {%endblock%}
实现翻页的部分:
{%ifall_news.has_previous%} 上一页 {%endif%} {%forpageinall_news.pages%} {%ifpage%} {%ifequalpageall_news.number%} {{page}} {%else%} {%endifequal%} {%else%} {{page}} ... {%endif%} {%endfor%} {%ifall_news.has_next%} 下一页 {%endif%}
样式较文档提供的简化了很多,方便使用。
.pageturn.pagelist{
display:table-cell;
vertical-align:middle;
overflow:hidden;
}
.pageturnli{
width:30px;
height:30px;
line-height:30px;
margin-left:10px;
float:left;
text-align:center;
}
.pageturnli:first-child{
margin-left:0;
}
.pageturnli:hovera,.pageturn.activea{
background:#717171;
color:#fff;
border-color:#eaeaea;
}
.pageturna{
border:1pxsolid#eaeaea;
display:block;
height:28px;
color:#6c6c6c;
}
.pageturn.long{
width:100px;
}
.pageturn.nonea{
border:0;
}
.pageright{
float:right;
width:auto;
display:inline;
clear:none;
margin-top:10px;
}
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python加密解密算法与技巧总结》、《Python编码操作技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》
希望本文所述对大家Python程序设计有所帮助。