一、仿django分页功能自己实现
urls.py
1 2 3 4 5 6 7 8 9 |
|
views.py
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 41 |
|
index.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
二、利用django自带分页组件实现分页功能
使用分页器Paginator:
在视图中使用 Paginator来为查询集分页。我们提供视图以及相关的模板来展示如何展示这些结果。
1 2 3 4 5 |
|
Paginator所需参数:
1 2 |
|
Paginator对象的方法:
1 |
|
使用page对象方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
属性
1 2 3 4 5 6 7 8 |
|
代码示例:
Django内置分页:Paginator、Page
urls.py
1 2 3 4 5 6 7 8 9 |
|
views.py
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 41 42 43 44 45 46 47 48 49 50 51 |
|
index1.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
pager.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
三、扩展Django内置分页
urls.py
1 2 3 4 5 6 7 |
|
views.py
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 41 42 43 44 45 46 47 48 49 50 51 52 |
|
index.html
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 |
|
没加特效:
二、自定义分页器
效果:
分页功能在每个网站都是必要的,对于分页来说,其实就是根据用户的输入计算出应该在数据库表中的起始位置。
1 2 3 4 5 6 7 |
|
需求,需要在页面上显示分页的页面。如:[上一页][1][2][3][4][5][下一页]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
代码示例:
代码:
urls.py
1 2 3 4 5 6 7 8 |
|
views.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
pager.py
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 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
|
index2.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
总结:分页时需要做三件事:
- 创建处理分页数据的类
- 根据分页数据获取数据
- 输出分页HTML,即:[上一页][1][2][3][4][5][下一页]