File tree 7 files changed +112
-82
lines changed
7 files changed +112
-82
lines changed Original file line number Diff line number Diff line change @@ -11,6 +11,7 @@ django = "*"
11
11
markdown = " *"
12
12
gunicorn = " *"
13
13
faker = " *"
14
+ django-pure-pagination = " *"
14
15
15
16
[requires ]
16
17
python_version = " 3.6"
Original file line number Diff line number Diff line change @@ -144,6 +144,7 @@ tutorial 分支为项目的主分支,每一篇教程的代码都和历史提
144
144
21 . [ Django 官方推荐的姿势:类视图] ( https://www.zmrenwu.com/courses/hellodjango-blog-tutorial/materials/79/ )
145
145
22 . [ 在脚本中使用 ORM:Faker 批量生成测试数据] ( https://www.zmrenwu.com/courses/hellodjango-blog-tutorial/materials/80/ )
146
146
23 . [ 通过 Django Pagination 实现简单分页] ( https://www.zmrenwu.com/courses/hellodjango-blog-tutorial/materials/81/ )
147
+ 24 . [ 稳定易用的 Django 分页库,完善分页功能] ( https://www.zmrenwu.com/courses/hellodjango-blog-tutorial/materials/82/ )
147
148
148
149
## 公众号
149
150
<p align =" center " >
Original file line number Diff line number Diff line change 5
5
from django .utils .text import slugify
6
6
from django .views .generic import DetailView , ListView
7
7
from markdown .extensions .toc import TocExtension
8
+ from pure_pagination .mixins import PaginationMixin
8
9
9
10
from .models import Category , Post , Tag
10
11
11
12
12
- class IndexView (ListView ):
13
+ class IndexView (PaginationMixin , ListView ):
13
14
model = Post
14
15
template_name = 'blog/index.html'
15
16
context_object_name = 'post_list'
Original file line number Diff line number Diff line change 30
30
'django.contrib.messages' ,
31
31
'django.contrib.staticfiles' ,
32
32
33
+ 'pure_pagination' , # 分页
34
+
33
35
'blog.apps.BlogConfig' , # 注册 blog 应用
34
36
'comments.apps.CommentsConfig' , # 注册 comments 应用
35
37
]
110
112
111
113
STATIC_URL = '/static/'
112
114
STATIC_ROOT = os .path .join (BASE_DIR , 'static' )
115
+
116
+ # 分页设置
117
+ PAGINATION_SETTINGS = {
118
+ 'PAGE_RANGE_DISPLAYED' : 4 ,
119
+ 'MARGIN_PAGES_DISPLAYED' : 2 ,
120
+ 'SHOW_FIRST_PAGE_WHEN_INVALID' : True ,
121
+ }
Original file line number Diff line number Diff line change @@ -28,31 +28,7 @@ <h1 class="entry-title">
28
28
{% endfor %}
29
29
30
30
{% if is_paginated %}
31
- < div class ="pagination-simple ">
32
- <!-- 如果当前页还有上一页,显示一个上一页的按钮 -->
33
- {% if page_obj.has_previous %}
34
- < a href ="?page={{ page_obj.previous_page_number }} "> 上一页</ a >
35
- {% endif %}
36
- <!-- 显示当前页面信息 -->
37
- < span class ="current "> 第 {{ page_obj.number }} 页 / 共 {{ paginator.num_pages }} 页</ span >
38
- <!-- 如果当前页还有下一页,显示一个下一页的按钮 -->
39
- {% if page_obj.has_next %}
40
- < a href ="?page={{ page_obj.next_page_number }} "> 下一页</ a >
41
- {% endif %}
42
- </ div >
31
+ {{ page_obj.render }}
43
32
{% endif %}
44
33
45
- {# < div class ="pagination "> #}
46
- {# < ul > #}
47
- {# < li > < a href =""> 1</ a > </ li > #}
48
- {# < li > < a href =""> ...</ a > </ li > #}
49
- {# < li > < a href =""> 4</ a > </ li > #}
50
- {# < li > < a href =""> 5</ a > </ li > #}
51
- {# < li class ="current "> < a href =""> 6</ a > </ li > #}
52
- {# < li > < a href =""> 7</ a > </ li > #}
53
- {# < li > < a href =""> 8</ a > </ li > #}
54
- {# < li > < a href =""> ...</ a > </ li > #}
55
- {# < li > < a href =""> 11</ a > </ li > #}
56
- {# </ ul > #}
57
- {# </ div > #}
58
34
{% endblock main %}
Original file line number Diff line number Diff line change
1
+ < div class ="text-center pagination " style ="width: 100% ">
2
+ < ul >
3
+ {% if page_obj.has_previous %}
4
+ < li > < a href ="?{{ page_obj.previous_page_number.querystring }} "
5
+ class ="prev "> ‹‹ </ a > </ li >
6
+ {% else %}
7
+ < li > < span class ="disabled prev "> ‹‹ </ span > </ li >
8
+ {% endif %}
9
+ {% for page in page_obj.pages %}
10
+ {% if page %}
11
+ {% ifequal page page_obj.number %}
12
+ < li class ="current "> < a href ="# "> {{ page }}</ a > </ li >
13
+ {% else %}
14
+ < li > < a href ="?{{ page.querystring }} " class ="page "> {{ page }}</ a > </ li >
15
+ {% endifequal %}
16
+ {% else %}
17
+ ...
18
+ {% endif %}
19
+ {% endfor %}
20
+ {% if page_obj.has_next %}
21
+ < li > < a href ="?{{ page_obj.next_page_number.querystring }} " class ="next "> ››</ a >
22
+ </ li >
23
+ {% else %}
24
+ < li > < span class ="disabled next "> ››</ span > </ li >
25
+ {% endif %}
26
+ </ ul >
27
+ </ div >
You can’t perform that action at this time.
0 commit comments