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 相关文章推荐
py中的目录与文件判别代码
Jul 16 Python
python中__call__方法示例分析
Oct 11 Python
Flask的图形化管理界面搭建框架Flask-Admin的使用教程
Jun 13 Python
Python中属性和描述符的正确使用
Aug 23 Python
pip命令无法使用的解决方法
Jun 12 Python
Python中pandas dataframe删除一行或一列:drop函数详解
Jul 03 Python
Windows系统下PhantomJS的安装和基本用法
Oct 21 Python
python代码实现将列表中重复元素之间的内容全部滤除
May 22 Python
Django DRF路由与扩展功能的实现
Jun 03 Python
Python json解析库jsonpath原理及使用示例
Nov 25 Python
Python 内存管理机制全面分析
Jan 16 Python
解决pytorch 损失函数中输入输出不匹配的问题
Jun 05 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 破解防盗链图片函数
2008/12/09 PHP
MySQL连接数超过限制的解决方法
2011/07/17 PHP
PHP中数组定义的几种方法
2013/09/01 PHP
浅谈JavaScript的Polymer框架中的behaviors对象
2015/07/29 Javascript
基于jQuery实现放大镜特效
2020/10/19 Javascript
学习JavaScript设计模式之观察者模式
2020/04/22 Javascript
D3.js实现折线图的方法详解
2016/09/21 Javascript
Angular.js中定时器循环的3种方法总结
2017/04/27 Javascript
几种响应式文字详解
2017/05/19 Javascript
浅谈nodejs中的类定义和继承的套路
2017/07/26 NodeJs
nodejs读取并去重excel文件
2018/04/22 NodeJs
jQuery实现图片简单轮播功能示例
2018/08/13 jQuery
Vue自定义指令上报Google Analytics事件统计的方法
2019/02/25 Javascript
微信小程序表单验证插件WxValidate的二次封装功能(终极版)
2019/09/03 Javascript
微信小程序利用云函数获取手机号码
2019/12/17 Javascript
JavaScript实现复选框全选和取消全选
2020/11/20 Javascript
Python实现批量读取word中表格信息的方法
2015/07/30 Python
Python求解任意闭区间的所有素数
2018/06/10 Python
在Python中将函数作为另一个函数的参数传入并调用的方法
2019/01/22 Python
python 批量修改 labelImg 生成的xml文件的方法
2019/09/09 Python
opencv调整图像亮度对比度的示例代码
2019/09/27 Python
Python调用Windows命令打印文件
2020/02/07 Python
Windows下Sqlmap环境安装教程详解
2020/08/04 Python
一款利用html5和css3实现的3D立方体旋转效果教程
2016/04/26 HTML / CSS
英国休闲奢华的缩影:Crew Clothing
2019/05/05 全球购物
物业经理求职自我评价
2013/09/22 职场文书
优秀团员个人的自我评价
2013/10/02 职场文书
大学生自荐信
2013/12/11 职场文书
优秀安全员事迹材料
2014/05/11 职场文书
报效祖国演讲稿
2014/09/15 职场文书
募捐感谢信
2015/01/22 职场文书
工程合作意向书范本
2015/05/09 职场文书
党风廉洁教育心得体会
2016/01/20 职场文书
《自己去吧》教学反思
2016/02/16 职场文书
Redisson实现Redis分布式锁的几种方式
2021/08/07 Redis
关于maven依赖 ${xxx.version}报错问题
2022/01/18 Java/Android