django 分页django-pure-pagination

虽然django自带了一个paginator,但不是很方便,我们使用django-pure-pagination

github地址https://github.com/jamespacileo/django-pure-pagination.git

里面有教程,这里简要的说明一下

第一步下载

两种方式

一pip安装pip install django-pure-pagination

二源码安装git clone https://github.com/jamespacileo/django-pure-pagination.git

cd django-pure-pagination

python setup.py install

两者选其一

第二步使用

在settings中添加

INSTALLED_APPS = (
    ...
    ‘pure_pagination‘,
)

这里在settings中加入一些分页配置,

PAGINATION_SETTINGS = {
    ‘PAGE_RANGE_DISPLAYED‘: 10,
    ‘MARGIN_PAGES_DISPLAYED‘: 2,

    ‘SHOW_FIRST_PAGE_WHEN_INVALID‘: True,
}

views

# views.py
from django.shortcuts import render_to_response

from pure_pagination import Paginator, EmptyPage, PageNotAnInteger

def index(request):

    try:
        page = request.GET.get(‘page‘, 1)
    except PageNotAnInteger:
        page = 1

    objects = [‘john‘, ‘edward‘, ‘josh‘, ‘frank‘]

    # Provide Paginator with the request object for complete querystring generation

    p = Paginator(objects, request=request)

    people = p.page(page)

    return render_to_response(‘index.html‘, {
        ‘people‘: people,
    }

html

{# index.html #}
{% extends ‘base.html‘ %}

{% block content %}

{% for person in people.object_list %}
    <div>
        First name: {{ person }}
    </div>
{% endfor %}

{# The following renders the pagination html #}
<div id="pagination">
    {{ people.render }}
</div>

{% endblock %}

还有什么不明白的可以上github上看

时间: 2024-10-13 16:04:47

django 分页django-pure-pagination的相关文章

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 分页组件

一.仿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 分页例子 安装 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, } DISPL

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

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

8.2 Django 分页组件替换自定义分页

Django的分页器(paginator) 总之不太好用我们还是用自己的好一些 自定义分页器 分页实现源码 """ 自定义分页组件 """ class Pagination(object): def __init__(self, current_page, all_count, base_url, params, per_page_num=8, pager_count=11, ): """ 封装分页相关数据 :par

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 分页查询并返回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 - from django.db.models import F - class F

F() 的执行不经过 python解释器,不经过本机内存,是生成 SQL语句的执行. # Tintin filed a news story! reporter = Reporters.objects.get(name='Tintin') reporter.stories_filed += 1 reporter.save() # 等于 from django.db.models import F reporter = Reporters.objects.get(name='Tintin') re