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 %}

原文地址:https://www.cnblogs.com/zijue/p/9914550.html

时间: 2024-10-06 21:58:24

django实现分页功能的相关文章

django 实现分页功能

分页效果: 视图代码: 1 # -*- coding: utf-8 -*- 2 from django.shortcuts import render,get_object_or_404 3 from django.core.paginator import Paginator,PageNotAnInteger,EmptyPage 4 5 from .models import Article 6 7 # Create your views here. 8 9 def index(request

Django 之 分页功能

HTML代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <link rel="stylesheet" href="/static/bootstrap-3.3.7/dist/css/bootstrap.css"> <

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高级应用(分页功能) 1.原生分页应用 前端html代码 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Title</title> 6 </head> 7 <body> 8 <ul> 9 {% for item in posts.obj

{oldboy-django][2深入django]分页功能

1 django自带分页 1.1 分页模板 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <link rel="stylesheet" href="/static/plugins/bootstrap-3.3.7-dist/css/boots

django中orm分页功能(内置分页)

分批获取数据的方法 数据库方法 models.Uinfo.objects.all()[10:20] django自带的方法 创建一个新的url urlpatterns = [ url(r'^index.html/', views.index), ] 创建index函数 def index(request): """ 分页功能 :param request: :return: """ user_list = models.Uinfo.objects

Django自定制分页功能

URL: """django_paginner URL Configuration The `urlpatterns` list routes URLs to views. For more information please see: https://docs.djangoproject.com/en/2.1/topics/http/urls/ Examples: Function views 1. Add an import: from my_app import vi

django之分页

分页 在当前网页如果特别的数据,如果不想当前网页显示太多的内容数据(例如一些文章的目录或者一些小说的章节目录很多地方都用到分页),这时候就需要用分页了. 在Django中数据被分在不同页面中,并带有“上一页/下一页”标签.这些类位于django/core/paginator.py中. 分页器Paginator Paginator.py源码 import collections from math import ceil from django.utils import six from djan

django的分页--不全也未实现

一.Django内置分页 Paginator 二.自定义分页 分页功能在每个网站都是必要的,对于分页来说,其实就是根据用户的输入计算出应该在数据库表中的起始位置. 1.设定每页显示数据条数 2.用户输入页码(第一页.第二页...) 3.根据设定的每页显示条数和当前页码,计算出需要取数据表的起始位置 4.在数据表中根据起始位置取值,页面上输出数据 需求又来了,需要在页面上显示分页的页面.如:[上一页][1][2][3][4][5][下一页] 1.设定每页显示数据条数 2.用户输入页码(第一页.第二