django的分页器Paginator 从django中导入类


Posted in Python onJuly 25, 2019

先创建表,然后生成批量数据。

在models文件里

from django.db import models

# Create your models here.


class Book(models.Model):

  name = models.CharField(max_length=32)
  price = models.DecimalField(max_digits=5,decimal_places=2)

然后执行python manage.py makemigrations ,python migrate 生成数据库。把数据库从左边拉到右边,

在url里创建showBooks视图函数API,

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/', views.index),
  url(r'^ajaxHandle/', views.ajaxHandle),
  url(r'^showBooks/', views.showBooks),-------

在views文件中创建showBooks 函数,批量导入数据,用bulk_create()

从django中导入Paginstor类,用对象调用方法,

def showBooks(requests):

  #批量导入数据bulk_create()方法

  # book_list=[]#里面存一个个对象
  # for i in range(100):
  #   book_list.append(Book(name="book%s"%i,price=2+i+2))
  #
  # Book.objects.bulk_create(book_list)

  book_list_all = Book.objects.all()

  #分页器Paginator,是导入了一个类,在用实列出来的对象调用方法,
  from django.core.paginator import Paginator,EmptyPage,PageNotAnInteger

  #book_list_all 是要被分页的对象,第二个参数,是每页显示的条数
  p = Paginator(book_list_all,20)# p就是每页的对象,
  p.count #数据总数
  p.num_pages #总页数
  p.page_range#[1,2,3,4,5],得到页码,动态生成,

  page_num = requests.GET.get("page")#以get的方法从url地址中获取
  #如果输错了页码,
  try:
    book_list = p.page(page_num)#括号里的是页数,显示指定页码的数据,动态显示数据,所以不能写死了

  except PageNotAnInteger:#如果输入页码错误,就显示第一页
    book_list = p.page(1)
  except EmptyPage:#如果超过了页码范围,就把最后的页码显示出来,
    book_list = p.page(p.num_pages)

  return render(requests,"showBooks.html",locals())

数据库生成数据

django的分页器Paginator 从django中导入类

在templates 创建showBooks页面,把数据库数据渲染出来

{% load staticfiles %}
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <link rel="stylesheet" href="{% static 'bootstrap/css/bootstrap.css' %}" rel="external nofollow" >


</head>
<body>

<ul>
{#request 也可以在这里渲染出来#}
  {% for book in book_list %}
    <li>{{ book.id }}     {{ book.name }}     {{ book.price }}</li>
  {% endfor %}


</ul>


   <ul class="pagination">
     {% if book_list.has_previous %}
    <li><a href="/showBooks/?page={{ book_list.previous_page_number }}" rel="external nofollow" >上一页</a></li> ---直接使用方法,上一页,
    {% else %}
    <li class="disabled"><a href="#" rel="external nofollow" rel="external nofollow" >上一页</a></li>
     {% endif %}

   {% for num in p.page_range %}
    <li><a href="/showBooks/?page={{ num }}" rel="external nofollow" >{{ num }}</a></li>
   {% endfor %}

    {% if book_list.has_next %}
    <li><a href="/showBooks/?page={{ book_list.next_page_number }}" rel="external nofollow" >下一页</a></li>
   {% else %}
    <li class="disabled"><a href="#" rel="external nofollow" rel="external nofollow" >下一页</a></li>
    {% endif %}

   </ul>
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python增量循环删除MySQL表数据的方法
Sep 23 Python
Python实现返回数组中第i小元素的方法示例
Dec 04 Python
Python实现爬虫设置代理IP和伪装成浏览器的方法分享
May 07 Python
如何用Python实现简单的Markdown转换器
Jul 16 Python
对Python random模块打乱数组顺序的实例讲解
Nov 08 Python
Django Rest framework之权限的实现示例
Dec 17 Python
python广度优先搜索得到两点间最短路径
Jan 17 Python
Python学习笔记之图片人脸检测识别实例教程
Mar 06 Python
python bluetooth蓝牙信息获取蓝牙设备类型的方法
Nov 29 Python
Python本地及虚拟解释器配置过程解析
Oct 13 Python
Django项目配置Memcached和Redis, 缓存选择哪个更有优势
Apr 06 Python
python控制台打印log输出重复的解决方法
May 14 Python
python threading和multiprocessing模块基本用法实例分析
Jul 25 #Python
Python交互式图形编程的实现
Jul 25 #Python
python之pexpect实现自动交互的例子
Jul 25 #Python
Python使用lambda表达式对字典排序操作示例
Jul 25 #Python
浅析Python 引号、注释、字符串
Jul 25 #Python
django的auth认证,authenticate和装饰器功能详解
Jul 25 #Python
使用python telnetlib批量备份交换机配置的方法
Jul 25 #Python
You might like
php学习笔记 [预定义数组(超全局数组)]
2011/06/09 PHP
基于php常用正则表达式的整理汇总
2013/06/08 PHP
XAMPP安装与使用方法详细解析
2013/11/27 PHP
PHP页面间传递值和保持值的方法
2016/08/24 PHP
完美的php分页类
2017/10/24 PHP
PHP使用PhpSpreadsheet操作Excel实例详解
2020/03/26 PHP
IE不出现Flash激活框的小发现的js实现方法
2007/09/07 Javascript
js字符编码函数区别分析
2008/06/05 Javascript
Firefox getBoxObjectFor getBoundingClientRect联系
2008/10/26 Javascript
javascript Array.sort() 跨浏览器下需要考虑的问题
2009/12/07 Javascript
javascript学习(二)javascript常见问题总结
2013/01/02 Javascript
模拟多级复选框效果的jquery代码
2013/08/13 Javascript
js实现幻灯片播放图片示例代码
2013/11/07 Javascript
学习JavaScript设计模式之策略模式
2016/01/12 Javascript
Bootstrap基本组件学习笔记之列表组(11)
2016/12/07 Javascript
js实现1,2,3,5数字按照概率生成
2017/09/12 Javascript
vue的无缝滚动组件vue-seamless-scroll实例
2017/12/18 Javascript
react-native动态切换tab组件的方法
2018/07/07 Javascript
在react中使用vuex的示例代码
2018/07/30 Javascript
详解ES7 Decorator 入门解析
2019/02/18 Javascript
Vue状态模式实现窗口停靠功能(灵动、自由, 管理后台Admin界面)
2020/03/06 Javascript
python 文件和路径操作函数小结
2009/11/23 Python
轻松掌握python设计模式之访问者模式
2016/11/18 Python
django 在原有表格添加或删除字段的实例
2018/05/27 Python
python爬虫获取新浪新闻教学
2018/12/23 Python
Python制作exe文件简单流程
2019/01/24 Python
python3 selenium自动化 下拉框定位的例子
2019/08/23 Python
Python astype(np.float)函数使用方法解析
2020/06/08 Python
Python实现删除某列中含有空值的行的示例代码
2020/07/20 Python
涂鸦板简单实现 Html5编写属于自己的画画板
2016/07/05 HTML / CSS
ECCO爱步加拿大官网:北欧丹麦鞋履及皮具品牌
2017/07/08 全球购物
屈臣氏越南官网:Watsons越南
2021/01/14 全球购物
大型会议策划方案
2014/05/17 职场文书
2014年学校总务处工作总结
2014/12/08 职场文书
三十年同学聚会感言
2015/07/30 职场文书
Django实现在线无水印抖音视频下载(附源码及地址)
2021/05/06 Python