本文實例講述了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