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中from module import * 的一个坑
Jul 20 Python
python 简单备份文件脚本v1.0的实例
Nov 06 Python
解决pandas中读取中文名称的csv文件报错的问题
Jul 04 Python
python 实现将字典dict、列表list中的中文正常显示方法
Jul 06 Python
python语音识别实践之百度语音API
Aug 30 Python
python读取和保存图片5种方法对比
Sep 12 Python
Python学习笔记之pandas索引列、过滤、分组、求和功能示例
Jun 03 Python
Python对wav文件的重采样实例
Feb 25 Python
python 在sql语句中使用%s,%d,%f说明
Jun 06 Python
Python3爬虫里关于识别微博宫格验证码的知识点详解
Jul 30 Python
详解向scrapy中的spider传递参数的几种方法(2种)
Sep 28 Python
python numpy中setdiff1d的用法说明
Apr 22 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错误、异常处理机制(补充)
2012/05/07 PHP
phpStudy访问速度慢和启动失败的解决办法
2015/11/19 PHP
javascript禁用键盘功能键让右击及其他键无效
2013/10/09 Javascript
js获取下拉列表框中的value和text的值示例代码
2014/01/11 Javascript
javascript获取函数名称、函数参数、对象属性名称的代码实例
2014/04/12 Javascript
js实现网页图片延时加载 提升网页打开速度
2016/01/26 Javascript
JavaScript 数组中最大最小值
2016/06/05 Javascript
Javascript点击其他任意地方隐藏关闭DIV实例
2016/06/21 Javascript
JSONP跨域请求实例详解
2016/07/04 Javascript
JS实现简单的tab切换选项卡效果
2016/09/21 Javascript
jquery实现文字单行横移或翻转(上下、左右跳转)
2017/01/08 Javascript
微信小程序 开发之快递查询功能的实现
2017/01/09 Javascript
js自定义瀑布流布局插件
2017/05/16 Javascript
用户管理的设计_jquery的ajax实现二级联动效果
2017/07/13 jQuery
基于Vue的移动端图片裁剪组件功能
2017/11/28 Javascript
jQuery实现碰到边缘反弹的动画效果
2018/02/24 jQuery
JavaScript中创建原子的方法总结
2018/08/26 Javascript
浅谈在不使用ssr的情况下解决Vue单页面SEO问题(2)
2018/11/08 Javascript
微信小程序scroll-view点击项自动居中效果的实现
2020/03/25 Javascript
vue中element 的upload组件发送请求给后端操作
2020/09/07 Javascript
python在windows下实现备份程序实例
2014/07/04 Python
python通过pil将图片转换成黑白效果的方法
2015/03/16 Python
Python中的高级函数map/reduce使用实例
2015/04/13 Python
Python使用django框架实现多人在线匿名聊天的小程序
2017/11/29 Python
numpy matrix和array的乘和加实例
2018/06/28 Python
Python实现根据日期获取当天凌晨时间戳的方法示例
2019/04/09 Python
python对数组进行排序,并输出排序后对应的索引值方式
2020/02/28 Python
Python同时迭代多个序列的方法
2020/07/28 Python
HTML5网页录音和上传到服务器支持PC、Android,支持IOS微信功能
2019/04/26 HTML / CSS
美国迪克体育用品商店:DICK’S Sporting Goods
2018/07/24 全球购物
财会自我鉴定范文
2013/12/27 职场文书
小学生期末自我鉴定
2014/01/19 职场文书
安全生产先进个人材料
2014/02/06 职场文书
中国梦演讲稿教师篇
2014/04/23 职场文书
四风问题对照检查整改措施思想报告
2014/10/05 职场文书
茶楼服务员岗位职责
2015/02/09 职场文书