
比Django官方实现更好的分页组件+Bootstrap整合
发布日期:2021-05-09 01:58:04
浏览次数:13
分类:博客文章
本文共 2411 字,大约阅读时间需要 8 分钟。
前言
Django全家桶自带的分页组件只能说能满足分页这个功能,但是没那么好用就是了
Django的分页效果
django-pure-pagination
分页效果
使用方法
首先安装:
pip install django-pure-pagination
添加到App
INSTALLED_APPS = ( ... 'pure_pagination',)
配置一下,配置说明如图
PAGINATION_SETTINGS = { 'PAGE_RANGE_DISPLAYED': 10, 'MARGIN_PAGES_DISPLAYED': 2, 'SHOW_FIRST_PAGE_WHEN_INVALID': True,}
视图代码例子
from django.shortcuts import renderfrom pure_pagination import Paginatorfrom .models import Videodef all_video(request): video_list = Video.objects.all() paginator_obj = Paginator(video_list, 10, request=request) ctx = { 'page': paginator_obj.page(request.GET.get('page', 1)), } return render(request, 'video_list.html', context=ctx)
模板代码
注意这个django-pure-pagination
的Paginator
对象和Django内置的Paginator
有点不同,在用法上不同。
Django内置的Paginator
本身就是迭代器了,直接for item in page
就行,但是django-pure-pagination
不同,得for item in page.object_list
,这个区别注意一哈~
因此,django-pure-pagination
需要这样遍历页面内的对象:
{% for video in page.object_list %} {% include "widgets/video_card.html" %}{% empty %}视频列表获取为空!{% endfor %}
分页器的HTML代码
这里最好是单独写一个paginator.html
,作为Django模板组件,然后其他页面可以很方便的使用{% includ "paginator.html" %}
引入
{% load i18n %}{% if page.paginator.num_pages > 1 %} {% endif %}
最终实现的效果
参考资料
- 官网:
欢迎交流
程序设计实验室专注于互联网热门新技术探索与团队敏捷开发实践,在公众号「程序设计实验室」后台回复 linux、flutter、c#、netcore、android、kotlin、java、python 等可获取相关技术文章和资料,同时有任何问题都可以在公众号后台留言~
- 博客园:
- 打代码直播间:
- 知乎:
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2025年03月23日 05时52分34秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
使用JWT作为Spring Security OAuth2的token存储
2021-05-09
使用Redis作为Spring Security OAuth2的token存储
2021-05-09
【SOLVED】Linux使用sudo到出现输入密码提示延迟时间长
2021-05-09
项目引入非配置的文件,打成war包后测试报错的可能原因
2021-05-09
Git学习笔记
2021-05-09
SpringBoot笔记
2021-05-09
让你的代码更优秀的 14 条建议
2021-05-09
不需要爬虫也能轻松获取 unsplash 上的图片
2021-05-09
将博客搬至CSDN
2021-05-09
elementUi源码解析(1)--项目结构篇
2021-05-09
自动遍历测试之Monkey工具
2021-05-09
Nmap扫描工具介绍
2021-05-09
算法笔记:递归、动态规划
2021-05-09
Pytest插件开发
2021-05-09
常用Windows 快捷键
2021-05-09