django分页使用方法

当我们从后台数据库读取数据,出现太多的时候会很难看,这个时候就要用到分页功能,django带有的分页模块非常好用,这几天在研究,今天跟大家分享一下直接启动代码:

[[email protected] oms]# ./manage.py shell      #启动后台

>>> from django.core.paginator import Paginator    导入模块
>>> objects = [‘xiaoluo‘,‘test‘,‘huihui‘,‘xiaoxiao‘]    #开始定义一个列表
>>> p = Paginator(objects,2)          #objects以2为分割单位
>>> p.count                          #统计总共多少行
4
>>> p.num_pages                     #统计总共的页数
2
>>> p.page_range                    #序号
[1, 2]
>>> page1 = p.page(1)               #第一页序号
>>> page1
<Page 1 of 2>

>>> page1.object_list              #详细信息
[‘xiaoluo‘, ‘test‘]
>>> page1.has_next()              #是否有下一页
True
>>> page1.has_previous()          #是否有上一页
False

>>> page2= p.page(2)             #打印第二页
>>> page2.object_list
[‘huihui‘, ‘xiaoxiao‘]

>>> page2.previous_page_number()   #上一页的页面号数
1

>>> page1.next_page_number()       #下一页
2

>>> page1.start_index()          #这一页开始的序号
1
>>> page1.end_index()  
2

实例:下面是一段后台views的代码:

def server_asset_list(request):
        server_asse = ServerAsset.objects.all()
        paginator = Paginator(server_asse,10)
        try:
            page = int(request.GET.get(‘page‘,‘1‘))
        except ValueError:
            page = 1
        try:
            server_asse = paginator.page(page)
        except (EmptyPage,InvalidPage):
            server_asse = paginator.page(paginator.num_pages)
        return render_to_response(‘server_asset_list.html‘,{‘server_asse‘:server_asse})
页面html模板:
 {%if server_asse.has_previous%}
 <a href="?page={{ server_asse.previous_page_number }}">上一页</a>
 {%endif%}
    <span class="current">
 第{{ server_asse.number }}页,共{{ server_asse.paginator.num_pages }}页</span> 
 {%if server_asse.has_next %}
 <a href="?page={{ server_asse.next_page_number }}">下一页</a>
 {%endif%}

页面效果展示:

时间: 2024-07-31 17:22:28

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 -- 分页 -- 批量导入

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

MVCPager分页使用方法

public ActionResult AdminUserList(UserListModel model) { var pagedList = _userService.SearchAdminUsers(model.PageIndex, model.PageSize, model.Name, model.IsActive); model.Items = new PagedList<UserListItem>(Mapper.Map<List<UserListItem>>

Python中使用flask_sqlalchemy实现分页效果方法详解

Flask-sqlalchemy是关于flask一个针对数据库管理的.本文我们将采用一个关于员工显示例子,为大家展示分页效果的实现,一起来看看吧,希望对大家学习python有所帮助. 首先,我们创建SQLALCHEMY对像db. 1 from flask import Flask, render_template,request 2 from flask_sqlalchemy import SQLAlchemy 5 6 app = Flask(__name__,static_url_path='

AspNetPager控件分页使用方法

AspNetPager控件官方下载地址:http://www.webdiyer.com/aspnetpager/ 把控件加到项目中(添加自定义控件的方法),并把它拖放到页面上 <asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager> <asp:UpdatePanel ID="UpdatePanel1" runat="

合并多个python list以及合并多个 django QuerySet 的方法

在用python或者django写一些小工具应用的时候,有可能会遇到合并多个list到一个 list 的情况.单纯从技术角度来说,处理起来没什么难度,能想到的办法很多,但我觉得有一个很简单而且效率比较高的方法是我以前没注意到的.那就是利用 chain 方法来合并多个list. 同样也可以用来合并django 的 QuerySet. #coding:utf-8 from itertools import chain a = [1,2,"aaa",{"name":&qu