django 分页功能
来源:互联网 发布:网络销售入门 编辑:程序博客网 时间:2024/06/06 00:28
django 分页功能:
django自带了paginator,功能有一定局限,使用django-pure-pagination功能更为强大
github传送门:https://github.com/jamespacileo/django-pure-pagination
1)使用pip源安装:
pip install django-pure-pagination
2)在 INSTALLED_APPS设置
INSTALLED_APPS = ( ... 'pure_pagination',)
3)在setting中设置(非必要)
PAGINATION_SETTINGS = { #以当前页为中心,两边还有10页,左右各五页 #不包括...之前/之后的 'PAGE_RANGE_DISPLAYED': 10, #...之前/之后分别有2页 'MARGIN_PAGES_DISPLAYED': 2, #不合法页数时,回到首页,防止得到404页面 'SHOW_FIRST_PAGE_WHEN_INVALID': True,}
使用git上的图说明一下:
4)在view中实现
from ...#根据需要导入不同的类与方法from pure_pagination import Paginator, PageNotAnIntegerclass CourseListView(View): def get(self, request): all_blogs = Blog.objects.all().order_by('-add_time') # 对博客进行分页 # 取得当前页 # 空或者异常都将page赋值为1 try: page = request.GET.get('page', 1) except PageNotAnInteger: page = 1 # Paginator接受三个参数,分页对象、每页的数量、request请求 p = Paginator(all_blogs, 3, request=request) # 获取本页的对象 blogs = p.page(page) return render(request, 'blog-list.html', { 'all_blogs': blogs, })
5)html设置
# 传进来的all_blogs对象不是之前的Blog对象的集合# 这里使用for循环遍历当前页的Blog的对象要用以下方式:{% for blog in all_blogs.object_list %} ...{% endfor %}# 判断是不是有上一页{% if all_blogs.has_previous %} <li class="pagekey"><a href="?{{ all_blogs.previous_page_number.querystring }}">上一页</a></li> {% else %} <li class="pagekey"><a >无上页</a></li>{% endif %}# 将页码显示出来# 获取每个页码 {% for page in all_blogs.pages %} {% if page %} # all_blogs.number表示当前页 {% ifequal page all_blogs.number %} # {{ page.querystring }}与page={{ page }}写法相同 <li class="active"><a href="?{{ page.querystring }}">{{ page }}</a></li> {% else %} <li><a href="?{{ page.querystring }}" class="page">{{ page }}</a></li> {% endifequal %} {% else %} <li class="none"><a href="">...</a></li> {% endif %}{% endfor %}#下一页显示{% if all_blogs.has_next %} <li class="pagekey"><a href="?{{ all_blogs.next_page_number.querystring }}">下一页</a></li>{% else %} <li class="pagekey"><a>无下页</a></li>{% endif %}
效果图
有什么问题欢迎大家交流!
阅读全文
0 0
- django 分页功能
- django 分页功能
- Django 分页功能
- Django之分页功能
- Django之分页功能
- django 分页功能
- django 分页功能的实现
- 使用Django实现分页功能
- django使用 Paginator 实现分页功能
- django viewList 中实现分页功能
- django 1.97 paginator实现分页功能
- django 1.11 自定义分页功能的实现
- django-pure-pagination分页功能的实现
- 【Django插件使用】django-pagination实现页面分页功能
- 修改Django分页类,自定义实现分页功能
- django 1.11通用视图自带分页功能
- django 分页
- django分页
- 文章标题
- Hibernate入门(一)之基本配置
- 编写函数,输出大于a小于b的所有偶数,主函数读入两个正整数
- 'You are trying to run the Python 2 version of Beautiful Soup under Python 3. This will not work.'<>
- 自顶向下 逐步求精
- django 分页功能
- Hadoop/MapReduce 查找、统计和列出大图中的所有三角形
- 数的高度(java)
- 11-24 & 11-25 省选集训总结/题解
- mac 输入特殊符号⌘,⌥
- 使用SVN进行版本控制
- 在Linux系统终端下输入ls命令,不同颜色结果代表着不同的含义
- HDU2007
- caffe中*_train_test.prototxt配置文件分析