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设置socket代理的方法
Jan 14 Python
python解决网站的反爬虫策略总结
Oct 26 Python
浅谈Python 的枚举 Enum
Jun 12 Python
Python使用装饰器进行django开发实例代码
Feb 06 Python
Django实现单用户登录的方法示例
Mar 28 Python
Python中psutil的介绍与用法
May 02 Python
Python语法分析之字符串格式化
Jun 13 Python
python3.6编写的单元测试示例
Aug 17 Python
使用pyqt5 tablewidget 单元格设置正则表达式
Dec 13 Python
Linux下升级安装python3.8并配置pip及yum的教程
Jan 02 Python
python用Tkinter做自己的中文代码编辑器
Sep 07 Python
PyQt QMainWindow的使用示例
Mar 24 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
限制ckeditor上传图片文件大小的方法
2013/11/15 PHP
php实现批量压缩图片文件大小的脚本
2014/07/04 PHP
PHP清除字符串中所有无用标签的方法
2014/12/01 PHP
PHP缓存集成库phpFastCache用法
2014/12/15 PHP
PHP常用的三种设计模式汇总
2016/08/28 PHP
PHP中功能强大却很少使用的函数实例小结
2016/11/10 PHP
Javascript 写的简单进度条控件
2008/01/22 Javascript
javascript针对DOM的应用分析(二)
2012/04/15 Javascript
js 在定义的时候立即执行的函数表达式(function)写法
2013/01/16 Javascript
javascript中HTMLDOM操作详解
2014/12/11 Javascript
推荐一款jQuery插件模板
2015/01/09 Javascript
jQuery中iframe的操作(点击按钮新增窗口)
2016/04/20 Javascript
js微信支付实现代码
2016/12/22 Javascript
原生JS实现《别踩白块》游戏(兼容IE)
2017/02/20 Javascript
浅谈angular4生命周期钩子
2017/09/05 Javascript
垃圾回收器的相关知识点总结
2018/05/13 Javascript
JavaScript new对象的四个过程实例浅析
2018/07/31 Javascript
js实现图片无缝循环轮播
2019/10/28 Javascript
javascript运行机制之执行顺序理解
2020/08/03 Javascript
分析python服务器拒绝服务攻击代码
2014/01/16 Python
python实现kMeans算法
2017/12/21 Python
python实现装饰器、描述符
2018/02/28 Python
python 字符串追加实例
2019/07/20 Python
python 实现将Numpy数组保存为图像
2020/01/09 Python
浅谈django 重载str 方法
2020/05/19 Python
浅谈keras 模型用于预测时的注意事项
2020/06/27 Python
Python常用数字处理基本操作汇总
2020/09/10 Python
全网最详细的PyCharm+Anaconda的安装过程图解
2021/01/25 Python
python中altair可视化库实例用法
2021/01/26 Python
电气个人求职信范文
2014/02/04 职场文书
党员目标管理责任书
2014/07/25 职场文书
志愿者事迹材料
2014/12/26 职场文书
雷峰塔导游词
2015/02/09 职场文书
2015年教师节感恩寄语
2015/03/23 职场文书
Python趣味挑战之给幼儿园弟弟生成1000道算术题
2021/05/28 Python
mysql中int(3)和int(10)的数值范围是否相同
2021/10/16 MySQL