本文实例讲述了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