本文实例讲述了Django实现简单分页功能的方法。分享给大家供大家参考,具体如下:
使用django的第三方模块django-pure-pagination
安装模块:
1
|
pip install django - pure - pagination |
将'pure_pagination'添加到settings.py文件中
1
2
3
4
|
INSTALLED_APPS = ( ... 'pure_pagination' , ) |
在view.py文件中
1
2
3
4
5
6
7
8
9
10
11
12
13
|
from django.shortcuts import render rom .models import mymodel from pure_pagination import Paginator, EmptyPage, PageNotAnInteger def NewsList(request): all_news = mymodel.objects. all ().order_by( '-add_time' ) # 分页功能 try : page = request.GET.get( 'page' , 1 ) except PageNotAnInteger: page = 1 p = Paginator(all_news, 3 , request = request) news = p.page(page) return render(request, 'rdxw.html' , { 'all_news' : news}) |
在template.py文件中调用view传递的参数'all_news'需要加上'.object_list'
1
2
3
4
5
6
7
|
{ % extends 'base.html' % } { % block content % } <ul> { % for new in all_news.object_list % } <li>{{new.content}}< / li> { % endblock % } < / ul> |
实现翻页的部分:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
<div class = "pageturn" > <ul class = "pagelist" > { % if all_news.has_previous % } <li class = "long" ><a href = "?{{ all_news.previous_page_number.querystring }}" rel = "external nofollow" >上一页< / a>< / li> { % endif % } { % for page in all_news.pages % } { % if page % } { % ifequal page all_news.number % } <li class = "active" ><a href = "?{{ page.querystring }}" rel = "external nofollow" rel = "external nofollow" >{{ page }}< / a>< / li> { % else % } <li><a href = "?{{ page.querystring }}" rel = "external nofollow" rel = "external nofollow" class = "page" >{{ page }}< / a>< / li> { % endifequal % } { % else % } <li class = "none" ><a href = "">...< / a>< / li> { % endif % } { % endfor % } { % if all_news.has_next % } <li class = "long" ><a href = "?{{ all_news.next_page_number.querystring }}" rel = "external nofollow" >下一页< / a>< / li> { % endif % } < / ul> < / div> |
样式较文档提供的简化了很多,方便使用。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
.pageturn .pagelist { display: table - cell; vertical - align: middle; overflow: hidden; } .pageturn li { width: 30px ; height: 30px ; line - height: 30px ; margin - left: 10px ; float : left; text - align: center; } .pageturn li:first - child { margin - left: 0 ; } .pageturn li:hover a, .pageturn .active a { background: #717171; color: #fff; border - color: #eaeaea; } .pageturn a { border: 1px solid #eaeaea; display: block; height: 28px ; color: #6c6c6c; } .pageturn . long { width: 100px ; } .pageturn .none a { border: 0 ; } .pageright { float : right; width: auto; display: inline; clear: none; margin - top: 10px ; } |
希望本文所述对大家Python程序设计有所帮助。
原文链接:http://www.cnblogs.com/thunderLL/p/6962786.html