博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
django-pure-pagination 组件使用
阅读量:6843 次
发布时间:2019-06-26

本文共 2687 字,大约阅读时间需要 8 分钟。

django-pure-pagination 组件

用于在 django 中自动创建分页

官方详见 github :

安装

pip install django-pure-pagination

配置

settings.py

加入 apps 中 需要加入到 apps 中

INSTALLED_APPS = (    ...    'pure_pagination',)

使用

views.py

Paginator 实例的时候需要传入 参数

实例对象 每页显示数量 request 

ps:

  官方的文档中中未写明. 所以会报错缺少参数

  因此这里要稍微注意

from django.shortcuts import render_to_responsefrom pure_pagination import Paginator, EmptyPage, PageNotAnIntegerdef 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(all_orgs, 5, request=request)
  people = p.page(page)   return render_to_response('index.html', { 'people': people, })

index.html

直接通过 {

{ people.render }} 可以自动帮你生成分页. 但是样式没法改的

如果想使用自己的样式分页则需要另一种方式

{# index.html #}{% extends 'base.html' %}{% block content %}{% for person in people.object_list %}    
First name: {
{ person }}
{% endfor %}{# The following renders the pagination html #}
{% endblock %}

 

这里是官方提供的自定义的方法,较为清晰

{% load i18n %}

实例

views.py

将要分页的对象创建分页对象传递给前端

try:            page = request.GET.get('page', 1)        except PageNotAnInteger:            page = 1        p = Paginator(all_orgs, 5, request=request)        orgs = p.page(page)        return render(request, "org-list.html", {            "all_orgs": orgs,        })

org-list.html

前端对 分页数据进行渲染成分页器

具体怎么用参考以下

    {% if all_orgs.has_previous %}
  • 上一页
  • {% endif %} {% for page in all_orgs.pages %} {% if page %} {% ifequal page all_orgs.number %}
  • {
    { page }}
  • {% else %}
  • {
    { page }}
  • {% endifequal %} {% else %}
  • ...
  • {% endif %} {% endfor %} {% if all_orgs.has_next %}
  • 下一页
  • {% endif %}

具体实现效果

 

转载于:https://www.cnblogs.com/shijieli/p/10550215.html

你可能感兴趣的文章