zoukankan      html  css  js  c++  java
  • django实现分页功能

    在个人博客或者网站上,我们发表文章经常会对博客进行分页,下面代码用django实现:

    django有它自带的分页功能:Paginator

    不过我们用在它基础上开发的另一个包:django-pure-pagination 

    先了解一下这个包特性:

    1、使用与django.core相同的API,因此与现有代码完全兼容。

    2、它考虑了现有的GET参数,具有动态查询字符串创建。

    3、用html呈现分页功能,开箱即用(方便)

    4、使呈现更高级的分页模板更加容易。

    使用:

    一、安装

    在虚拟环境中通过pip安装:

    pip install django-pure-pagination

    INSTALLED_APPS里添加pure-pagination

    1 INSTALLED_APPS = (
    2     ...
    3     'pure_pagination',
    4 )

    二、设置

    在setting.py中设置:

     1 INSTALLED_APPS = (
     2     ...
     3     'pure_pagination',
     4 )
     5 
     6 PAGINATION_SETTINGS = {
     7     'PAGE_RANGE_DISPLAYED': 3,    #中间显示的个数
     8     'MARGIN_PAGES_DISPLAYED': 2,  #两边显示的个数
     9 
    10     'SHOW_FIRST_PAGE_WHEN_INVALID': True,
    11 }

    如图显示

    用于展示底部分页栏中数量的显示,可以对其进行更改尝试不同效果。

    3、视图函数(views.py)

     1 # views.py
     2 from django.shortcuts import render_to_response
     3 
     4 from pure_pagination import Paginator, EmptyPage, PageNotAnInteger
     5 
     6 
     7 def index(request):
     8 
     9     try:
    10         page = request.GET.get('page', 1)
    11     except PageNotAnInteger:
    12         page = 1
    13 
    14     objects = ['john', 'edward', 'josh', 'frank']
    15 
    16     # Provide Paginator with the request object for complete querystring generation
    17 
    18     p = Paginator(objects, request=request)
    19 
    20     people = p.page(page)
    21 
    22     return render_to_response('index.html', {
    23         'people': people,
    24     }

    4、前端展示  index.html

     1 {# index.html #}
     2 {% extends 'base.html' %}
     3 
     4 {% block content %}
     5 
     6 {% for person in people.object_list %}
     7     <div>
     8         First name: {{ person }}
     9     </div>
    10 {% endfor %}
    11 
    12 {# The following renders the pagination html #}
    13 <div id="pagination">
    14     {{ people.render }}
    15 </div>
    16 
    17 {% endblock %}

     

  • 相关阅读:
    Python学习笔记之递归函数
    包管理工具-yum
    ElasticSearch定时清理缓存索引
    pytest实现多进程与多线程运行
    获取webView页面内窗体句柄
    文档测试
    ClickHouse 运维相关部分命令记录
    [转]contains a file system with errors, check forced
    log日志重复打印 修改
    jmeter参数化
  • 原文地址:https://www.cnblogs.com/zijue/p/9914550.html
Copyright © 2011-2022 走看看