django 分页例子

django 分页例子

安装

python3.6 -m pip install django-pure-pagination==0.3.0

设置

settings.py
INSTALLED_APPS = [
    ‘pure_pagination‘,
]

PAGINATION_SETTINGS = {
    ‘PAGE_RANGE_DISPLAYED‘: 3,
    ‘MARGIN_PAGES_DISPLAYED‘: 2,
    ‘SHOW_FIRST_PAGE_WHEN_INVALID‘: True,
}

DISPLAY_PER_PAGE = 15

应用

from pure_pagination import PageNotAnInteger
from pure_pagination import Paginator 
        try:
            page = self.request.GET.get(‘page‘, 1)
        except PageNotAnInteger_He as e:
            page = 1
        p = Paginator_He(self.queryset, getattr(settings, ‘DISPLAY_PER_PAGE‘), request=self.request)
        asset_list = p.page(page)

        context = {
            "ecs_list": asset_list,
             }

    <div style="text-align:center;">
            <nav class="pagination">

                    <li><a href="{% url "asset:ecs_list" %}?page=1">首页 </a></li>

                    {% if ecs_list.has_previous %}
                            <li class="long"><a
                                            href="?{{ ecs_list.previous_page_number.querystring }}">上一页</a>
                            </li>
                    {% endif %}

                    {% for page in ecs_list.pages %}
                            {% if page %}
                                    {% ifequal page ecs_list.number %}
                                            <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 ecs_list.has_next %}
                            <li class="long"><a
                                            href="?{{ ecs_list.next_page_number.querystring }}">下一页</a>
                            </li>
                    {% endif %}
                    <li>
                            <a href="{% url "asset:ecs_list" %}?page={{ ecs_list.paginator.num_pages }}">尾页 </a>
                    </li>
                    <li><span
                                    style="color: #0a0a0a">总: ?{{ ecs_list.paginator.num_pages }} 页</span>
                    </li>
                    <li><span
                                    style="color: #0a0a0a">  ECS数量: {{ ecs_count }}</span>
                    </li>
            </nav>
    </div>

原文地址:http://blog.51cto.com/hequan/2316259

时间: 2024-10-11 17:44:48

django 分页例子的相关文章

Django 分页查询并返回jsons数据,中文乱码解决方法

一.引子 Django 分页查询并返回 json ,需要将返回的 queryset 序列化, demo 如下: # coding=UTF-8 import os from django.core import serializers from django.core.paginator import Paginator, PageNotAnInteger, EmptyPage from django.shortcuts import render from django.http import

django分页功能,templatetags的应用

django 将不会将得到的html代码自动转化 from django.utils.html import format_html html =''' <a href='http://www.china.cn'>中国</a>''' format_html(html) django分页 分页功能基本操作 from django.core.import Paginator li=[11,12,13,22,24,25] p=Paginator(li,3) #将li传入,每页显示3条 p

django 分页(2) 使用类 页码显示

django 分页显示页码 views.py 显示11页码 1 2 3 4 5 6 7 8 9 10 11 if 总页数(10) < 11 起始位置 1 - 10总页数 else 总页数 > 11 IF 当前页 小于 6 起始位置 1 结束页 11 IF 当前页 大于 6 IF 如果结束页 > 总页数 起始值 6 - 5 总页数 else 起始值 6 - 5 结束页 6+5 #!/usr/bin/env python #_*_coding:utf-8_*_ from django.sho

Django分页和查询参数的问题

查询是通过get的方式,之前没有分页之前,url是这样的: http://hostname/search?query=port%3A8080 那么我的想法是如果分页了. 1,不带page参数了.next之后就加载下一页的内容 http://hostname/search?query=port%3A8080 请问这个是通过post传参吗? 2,使用官方文档中的(目前的方案) http://hostname/search?query=port%3A8080?page=2 但是,在现实情况下.?pag

Django -- 分页 -- 批量导入

Django --  分页 分页 Django提供了一些类实现管理数据分页,这些类位于django/core/paginator.py中 Paginator对象 Paginator(列表,int):返回分页对象,参数为列表数据,每面数据的条数 属性 count:对象总数 num_pages:页面总数 page_range:页码列表,从1开始,例如[1, 2, 3, 4] 方法 page(num):下标以1开始,如果提供的页码不存在,抛出InvalidPage异常 异常exception Inva

django 分页组件

一.仿django分页功能自己实现 urls.py 1 2 3 4 5 6 7 8 9 from django.conf.urls import url from django.contrib import admin from app01 import views urlpatterns = [     url(r'^admin/', admin.site.urls),     url(r'^index.html$', views.index),     ] views.py 1 2 3 4

Django介绍、安装配置、基本使用、Django用户注册例子

Django介绍 Django 是由 Python 开发的一个免费的开源网站框架,可以用于快速搭建高性能,优雅的网站 DjangoMTV的思想 没有controller,把view当成mvc的controller Django安装 可以配合参考:http://blog.csdn.net/jerome_s/article/details/46340079 ( Python介绍.环境搭建.第一个程序) 1. 先安装好Ptyhon 2. 安装Django 下载 :https://www.djangop

Django框架(十五)—— Django分页组件

Django分页组件 一.分页器 数据量大的话,可以分页获取,查看 例如:图书管理中,如果有成千上万本书,要是都在一个页面中渲染出来,会影响页面美观,所以就要用分页器分页渲染 二.分页器的使用 基本写法 基本写法: 后端: 总数据拿出来 生成分页器Paginator对象(对象里有属性和方法) 生成当前页的对象,current_page=paginator.page(当前页码) 取出前台传过来的页码,current_page_num = int(request.GET.get('page')) -

19:django 分页

分页是网站中比较常见的应用,django提供了一些类帮助管理分页的数据,这些类都位于django.core.paginator.py文件里面 分页类 构造函数 class Paginator(object_list, per_page, orphans=0, allow_empty_first_page=True) 必需参数: object_list:具有count()或者__len__()方法的可切片的对象,比如列表,元组或者django queryset per_page:每页最大的条目数量