博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Django之分页器
阅读量:6902 次
发布时间:2019-06-27

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

Paginator

 

分页器的使用

>>> from django.core.paginator import Paginator>>> objects = ['john', 'paul', 'george', 'ringo']>>> p = Paginator(objects, 2) >>> p.count        #数据总数4>>> p.num_pages    #总页数2>>> type(p.page_range)  # `
` in Python 2.
>>> p.page_range #页码的列表range(1, 3) # =========[1,2] >>> page1 = p.page(1) #第1页的page对象>>> page1
>>> page1.object_list #第1页的数据['john', 'paul'] >>> page2 = p.page(2)>>> page2.object_list #第2页的数据['george', 'ringo']>>> page2.has_next() #是否有下一页False>>> page2.has_previous() #是否有上一页True>>> page2.has_other_pages() #是否有其他页True>>> page2.next_page_number() #下一页的页码Traceback (most recent call last):...EmptyPage: That page contains no results>>> page2.previous_page_number() #上一页的页码1>>> page2.start_index() # 本页第一条记录的序数(从1开始)3>>> page2.end_index() # 本页最后录一条记录的序数(从1开始)4 >>> p.page(0) #错误的页,抛出异常Traceback (most recent call last):...EmptyPage: That page number is less than 1>>> p.page(3) #错误的页,抛出异常Traceback (most recent call last):...EmptyPage: That page contains no results

 

实现一个分页效果

templates:

{% load staticfiles %}    
Title

分页器

    {
    % for book in book_list %}
  • {
    { book.title }} {
    { book.price }}
  • {
    % endfor %}
    {
    % if book_list.has_previous %}
    {
    % else %}
    {
    % endif %} {
    % for num in paginator.page_range %} {
    % if num == currentPage %}
  • {
    { num }}
  • {
    % else %}
  • {
    { num }}
  • {
    % endif %} {
    % endfor %} {
    % if book_list.has_next %}
    {
    % else %}
    {
    % endif %}

views:

from django.shortcuts import render,HttpResponse# Create your views here.from django.core.paginator import Paginator, EmptyPage, PageNotAnIntegerfrom app01.models import *def index(request):    '''    批量导入数据:    Booklist=[]    for i in range(100):        Booklist.append(Book(title="book"+str(i),price=30+i*i))    Book.objects.bulk_create(Booklist)    '''    book_list=Book.objects.all()    paginator = Paginator(book_list, 10)    page = request.GET.get('page',1)    currentPage=int(page)    try:        print(page)        book_list = paginator.page(page)    except PageNotAnInteger:        book_list = paginator.page(1)    except EmptyPage:        book_list = paginator.page(paginator.num_pages)    return render(request,"index.html",locals())

 

转载于:https://www.cnblogs.com/mituxiaoshutong/p/9077934.html

你可能感兴趣的文章
SD-WAN提供安全的云服务接入
查看>>
苹果系统被曝漏洞, 大麦网再遭撞库攻击 | 宅客周刊
查看>>
最让程序员感到崩溃的10种编程语言
查看>>
对于互联网来说 “+”什么才重要
查看>>
任何数据都可压缩成1‰
查看>>
解密IFTTT的数据架构
查看>>
一个白牌厂商视角:极简交换机NOS演进史
查看>>
又一种入侵物理隔离设备的方法 利用KVM
查看>>
运维窍门:四种方法加快您的专用服务器
查看>>
史上比较用心的纯代码实现AutoLayout
查看>>
Windows 10 仍然可以通过辅助技术用户的形式免费升级
查看>>
为什么Linux安全 基于它的安卓不安全呢?
查看>>
DHS推出物联网安全策略原则
查看>>
《Hadoop实战第2版》——2.5节日志分析及几个小技巧
查看>>
Selenium RC 环境搭建(eclipse)
查看>>
美国高通公司携手贵州 研发数据中心服务器芯片
查看>>
为什么数据分析师是2017年的重大人才缺口?
查看>>
印度光伏市场潜力巨大 正信光电拟积极扩大市场占有率
查看>>
步步学LINQ to SQL:为实体类添加关系
查看>>
差异化方案和定制化产品 化解智慧城市难题
查看>>