django组件 分页器

 1 from django.shortcuts import render,HttpResponse
 2 
 3 # Create your views here.
 4 from app01.models import *
 5 from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
 6 
 7 def index(request):
 8 
 9     '''
10     批量导入数据:
11 
12     Booklist=[]
13     for i in range(100):
14         Booklist.append(Book(title="book"+str(i),price=30+i*i))
15     Book.objects.bulk_create(Booklist)
16     '''
17 
18     '''
19 分页器的使用:
20 
21     book_list=Book.objects.all()
22 
23     paginator = Paginator(book_list, 10)
24 
25     print("count:",paginator.count)           #数据总数
26     print("num_pages",paginator.num_pages)    #总页数
27     print("page_range",paginator.page_range)  #页码的列表
28 
29 
30 
31     page1=paginator.page(1) #第1页的page对象
32     for i in page1:         #遍历第1页的所有数据对象
33         print(i)
34 
35     print(page1.object_list) #第1页的所有数据
36 
37 
38     page2=paginator.page(2)
39 
40     print(page2.has_next())            #是否有下一页
41     print(page2.next_page_number())    #下一页的页码
42     print(page2.has_previous())        #是否有上一页
43     print(page2.previous_page_number()) #上一页的页码
44 
45 
46 
47     # 抛错
48     #page=paginator.page(12)   # error:EmptyPage
49 
50     #page=paginator.page("z")   # error:PageNotAnInteger
51 
52     '''
53 
54 
55     book_list=Book.objects.all()
56 
57     paginator = Paginator(book_list, 10)
58     page = request.GET.get('page',1)
59     currentPage=int(page)
60 
61 
62     try:
63         print(page)
64         book_list = paginator.page(page)
65     except PageNotAnInteger:
66         book_list = paginator.page(1)
67     except EmptyPage:
68         book_list = paginator.page(paginator.num_pages)
69 
70 
71     return render(request,"index.html",{"book_list":book_list,"paginator":paginator,"currentPage":currentPage})

原文:https://www.cnblogs.com/yuanchenqi/articles/9036515.html

转载于:https://www.cnblogs.com/lzmdbk/p/9889679.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/366820.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

自己写一个H5项目CI系统

持续集成(Continuous integration,简称CI)系统在软件自动化构建(包括编译、发布、自动化测试)方面有着重要的作用,在之前,前端项目简单,很多时候发布都只是一些简单的拷贝,而随着web…

25.QT-模型视图

模型视图设计模式的核心思想 使模型(数据)与视图(显示)相分离模型只需要对外提供标准接口存取数据,无需数据如何显示视图只需要自定义数据的显示方式,无需数据如何组织存储当数据发生改变时,会通过信号通知视图当用户与视图进行交互时,会通过信号向模型发送交互信息 在QT中提供…

休眠事实:多级访存

在多个级别上检索根实体及其子关联是很常见的。 在我们的示例中,我们需要加载一个包含其树,分支和叶子的森林,并且我们将尝试查看Hibernate对于三种集合类型的行为:集合,索引列表和包。 这是我们的类层次结构的样子&…

linux系统fuser命令,Linux系统使用Fuser命令的方法

fuser命令是一个非常聪明的unix实用程序,用于查找正在使用某个文件、目录或socket的进程。 它还提供有关拥有该进程的用户和访问类型的信息。。fuser工具显示了使用指定文件或文件系统的每个进程的进程ID(PID)。安装如果你的精简版运行fuser提示如下信息&#xff1a…

网络基础之 Nmap 命令

nmap......转载于:https://www.cnblogs.com/changha0/p/9898020.html

react-router 源码浅析

用 react-router 也用了比较久了,对他的内部工作方式却只是了解皮毛,而且大部分还是通过别人的博客。最近两周打算自己探究一下他的实现。 注意!因为我只使用过 v3 版本的 react-router,因为对他的使用方式比较熟悉,所…

前5个有用的隐藏Eclipse功能

Eclipse是野兽。 仅凭其力量才能超越其神秘感的设备。 有人将其称为连续体跨功能器 。 其他人则称它为透湿器 。 是的,它是如此之大,需要花费数年才能掌握。 然后,您的经理出现并告诉您:我们正在使用NetBeans。 开玩笑。 除了Ada…

linux如何解除密码,如何在Linux下解除PDF文件的密码?

【51CTO.com快译】今天,我碰巧与一位朋友共享一个受密码保护的PDF文件。我知道该PDF文件的密码,但不想透露。相反,我只想解除密码,将文件发送给朋友。于是我开始在网上找一些简单的方法,好解除PDF文件的密码保护。上网…

C#中结构体定义并转换字节数组

ref: https://www.cnblogs.com/dafanjoy/p/7818126.html C#中结构体定义并转换字节数组 最近的项目在做socket通信报文解析的时候,用到了结构体与字节数组的转换;由于客户端采用C开发,服务端采用C#开发,所以双方必须保证各自定义结…

解析robots.txt

案例: http://www.taobao.com/robots.txt 学习: User-agent: * 这里的*代表的所有的搜索引擎种类,*是一个通配符Disallow: /admin/ 这里定义是禁止爬寻admin目录下面的目录Disallow: /require/ 这里定义是禁止爬寻require目录下面的目录Disal…

2018移动端页面适配-自适应最新方案直接写px--------通过gulp工作流搭建一体化的移动端开发环境

1.开始 在flexible的GitHub上面写着 由于viewport单位得到众多浏览器的兼容,lib-flexible这个过渡方案已经可以放弃使用,不管是现在的版本还是以前的版本,都存有一定的问题。建议大家开始使用viewport来替代此方案。vw的兼容方案可以参阅《如…

jclouds的命令行界面

序幕 我使用和为jclouds贡献了一年多的时间。 到目前为止,我已经在很多领域广泛使用了它,尤其是在Fuse生态系统中 。 它的强大之处在于它缺少一件事,该工具可用于管理jclouds也提供访问权限的任何云提供商。 类似于EC2命令之类的工具&#xf…

中兴linux下载软件,国产操作系统中兴新支点使用WPS For Linux办公软件的体验报告...

以下将给你带来在国产操作系统中兴新支点操作系统下使用WPS For Linux办公软件的体验报告,WPS For Linux提供Deb、Rpm、Tar.xz、Snap软件包,你可以选择Tar.xz源码包编译安装,或在系统自带的软件中心下安装,也可以参考采用snap方式…

Java 教程(开发环境配置+基础语法)

Java 开发环境配置 在本章节中我们将为大家介绍如何搭建Java开发环境。 window系统安装java 下载JDK 首先我们需要下载java开发工具包JDK,下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html,点击如下下载按钮&am…

数据采集工具Telegraf:简介及安装

接着上一篇博客:InfluxDB简介及安装,这篇博客介绍下Linux环境下Telegraf安装以及其功能特点。。。 官网地址:influxdata 官方文档:telegraf文档 环境:CentOS7.4 64位 Telegraf版本:0.11.1-1 一、Telegraf介…

初探小程序插件

插播公司招聘信息: https://cnodejs.org/topic/5a915706653c43b914684f90 小程序插件可以干嘛? 周二晚上(3.13)的一个小程序新功能发布了-【小程序插件】,一开始以为是小程序发布了类似npm的组件管理工具,…

流畅和稳定的API的Lambda

几周前,我写了关于Java 8 lambda的介绍 。 在本简介中,我解释了什么是lambda以及如何将它们与Java 8中也引入的新Stream API结合使用。 Stream API为集合提供了更实用的接口。 此接口在很大程度上取决于lambda。 但是,lambda不仅具有改进的收…

linux 内存使用原理,linux中内存使用原理

首先介绍一下linux中内存是如何使用的。当有应用需要读写磁盘数据时,由系统把相关数据从磁盘读取到内存,如果物理内存不够,则把内存中的部分数据导入到磁盘,从而把磁盘的部分空间当作虚拟内存来使用,也称为Swap。如果给…

Confluence 6 站点备份和恢复

Atlassian 推荐针对生产环境中安装使用的 Confluence 使用原始数据库工具备份策略。 在默认的情况下,Confluence 每天都会备份所有数据和附件到 XML 文件备份中。这些文件被称为 XML 站点备份,同时这些文件存储在 Confluence home 目录中的 backups 目录…

休眠事实:等于和HashCode

每个Java对象都继承了equals和hashCode方法,但它们仅对Value对象有用,对面向无状态行为的对象毫无用处。 尽管使用“ ”运算符比较引用很简单,但是对于对象相等而言,事情要复杂一些。 由于您负责告诉平等性对特定对象类型的含义…