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程序设计有所帮助。