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中Collection的使用小技巧
Aug 18 Python
Python中条件判断语句的简单使用方法
Aug 21 Python
基于python的七种经典排序算法(推荐)
Dec 08 Python
详解python的webrtc库实现语音端点检测
May 31 Python
对变量赋值的理解--Pyton中让两个值互换的实现方法
Nov 29 Python
Python IDLE清空窗口的实例
Jun 25 Python
深入理解Python中的 __new__ 和 __init__及区别介绍
Sep 17 Python
tf.concat中axis的含义与使用详解
Feb 07 Python
django的模型类管理器——数据库操作的封装详解
Apr 01 Python
基于pycharm实现批量修改变量名
Jun 02 Python
Python实现GIF图倒放
Jul 16 Python
简单谈谈Python面向对象的相关知识
Jun 28 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 mysql数据库操作分页类
2008/06/04 PHP
如何通过Linux命令行使用和运行PHP脚本
2015/07/29 PHP
php版微信公众平台入门教程之开发者认证的方法
2016/09/26 PHP
PHP实现批量修改文件名的方法示例
2019/09/18 PHP
js 图片轮播(5张图片)
2008/12/30 Javascript
使用POST方式弹出窗口的两种方法示例介绍
2014/01/29 Javascript
JavaScript动态改变表格单元格内容的方法
2015/03/30 Javascript
ajax+jQuery实现级联显示地址的方法
2015/05/06 Javascript
javascript实现继承的简单实例
2015/07/26 Javascript
JavaScript中数组继承的简单示例
2015/07/29 Javascript
javascript表单验证大全
2015/08/12 Javascript
Angular的$http与$location
2016/12/26 Javascript
使用JS在浏览器中判断当前网络连接状态的几种方法
2017/05/05 Javascript
详解Vue中的scoped及穿透方法
2019/04/18 Javascript
python的dict,set,list,tuple应用详解
2014/07/24 Python
基于Python和Scikit-Learn的机器学习探索
2017/10/16 Python
pycharm 主题theme设置调整仿sublime的方法
2018/05/23 Python
对python3 中方法各种参数和返回值详解
2018/12/15 Python
简单了解Python3里的一些新特性
2019/07/13 Python
Pycharm2020.1安装无法启动问题即设置中文插件的方法
2020/08/07 Python
Python函数__new__及__init__作用及区别解析
2020/08/31 Python
利用Python实现朋友圈中的九宫格图片效果
2020/09/03 Python
python pyg2plot的原理知识点总结
2021/02/28 Python
使用pandas读取表格数据并进行单行数据拼接的详细教程
2021/03/03 Python
Finishline官网:美国一家领先的运动品牌鞋类、服装零售商
2016/07/20 全球购物
西雅图电动自行车公司:Rad Power Bikes
2020/02/02 全球购物
医学专业毕业生推荐信
2013/11/14 职场文书
家长给孩子的表扬信
2014/01/17 职场文书
前处理班长职位说明书
2014/03/01 职场文书
葬礼司仪主持词
2014/03/31 职场文书
大二学习计划书范文
2014/04/27 职场文书
2015试用期转正工作总结
2014/12/12 职场文书
工作自我推荐信范文
2015/03/25 职场文书
房地产销售员岗位职责
2015/04/11 职场文书
2019入党申请书范文3篇
2019/08/21 职场文书
浅谈Laravel中使用Slack进行异常通知
2021/05/29 PHP