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中的Descriptor描述符学习教程
Jun 02 Python
Python爬取京东的商品分类与链接
Aug 26 Python
python中实现延时回调普通函数示例代码
Sep 08 Python
Python高斯消除矩阵
Jan 02 Python
python 限制函数执行时间,自己实现timeout的实例
Jan 12 Python
python图形工具turtle绘制国际象棋棋盘
May 23 Python
python将excel转换为csv的代码方法总结
Jul 03 Python
Ubuntu+python将nii图像保存成png格式
Jul 18 Python
python django 原生sql 获取数据的例子
Aug 14 Python
使用selenium和pyquery爬取京东商品列表过程解析
Aug 15 Python
Python中的list与tuple集合区别解析
Oct 12 Python
python 生成任意形状的凸包图代码
Apr 16 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
linux下php上传文件注意事项
2016/06/11 PHP
php实现留言板功能(会话控制)
2017/05/23 PHP
PHP生成随机数的方法总结
2018/03/01 PHP
PHP基于redis计数器类定义与用法示例
2018/02/08 PHP
PHP addAttribute()函数讲解
2019/02/03 PHP
js 禁用浏览器的后退功能的简单方法
2008/12/10 Javascript
JavaScript CSS修改学习第二章 样式
2010/02/19 Javascript
js加载读取内容及显示与隐藏div示例
2014/02/13 Javascript
用队列模拟jquery的动画算法实例
2015/01/20 Javascript
this,this,再次讨论javascript中的this,超全面(经典)
2016/01/05 Javascript
js实现分割上传大文件
2016/03/09 Javascript
浅析Javascript中bind()方法的使用与实现
2016/05/30 Javascript
创建基于Bootstrap的下拉菜单的DropDownList的JQuery插件
2016/06/02 Javascript
jQuery+ajax简单实现文件上传的方法
2016/06/03 Javascript
Bootstrap实现登录校验表单(带验证码)
2016/06/23 Javascript
jquery文字填写自动高度的实现方法
2016/11/07 Javascript
bootstrap datetimepicker日期插件超详细使用方法介绍
2017/02/23 Javascript
Angular(5.2-&gt;6.1)升级小结
2018/12/27 Javascript
一篇文章,教你学会Vue CLI 插件开发
2019/04/17 Javascript
微信小程序swiper实现文字纵向轮播提示效果
2020/01/21 Javascript
vue组件中实现嵌套子组件案例
2020/08/31 Javascript
vue 封装面包屑组件教程
2020/11/16 Javascript
[02:49]DAC2018决赛日TOP5 LGD开启黑暗之门绝杀VP
2018/04/08 DOTA
Python ORM框架SQLAlchemy学习笔记之映射类使用实例和Session会话介绍
2014/06/10 Python
Django框架教程之正则表达式URL误区详解
2018/01/28 Python
使用python3批量下载rbsp数据的示例代码
2019/12/20 Python
Python导入数值型Excel数据并生成矩阵操作
2020/06/09 Python
Django解决frame拒绝问题的方法
2020/12/18 Python
GoPro摄像机美国官网:美国运动相机厂商
2018/07/03 全球购物
C语言编程练习
2012/04/02 面试题
新品发布会策划方案
2014/06/08 职场文书
安全先进班组材料
2014/12/26 职场文书
语文教师个人工作总结
2015/02/06 职场文书
MongoDB使用profile分析慢查询的步骤
2021/04/30 MongoDB
JavaScript canvas实现流星特效
2021/05/20 Javascript
Python入门学习之类的相关知识总结
2021/05/25 Python