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 创建子进程模块subprocess详解
Apr 08 Python
Python的Django框架中settings文件的部署建议
May 30 Python
python实现人脸识别经典算法(一) 特征脸法
Mar 13 Python
解决pyinstaller打包exe文件出现命令窗口一闪而过的问题
Oct 31 Python
解决python字典对值(值为列表)赋值出现重复的问题
Jan 20 Python
python 画二维、三维点之间的线段实现方法
Jul 07 Python
django框架中间件原理与用法详解
Dec 10 Python
Flask框架搭建虚拟环境的步骤分析
Dec 21 Python
Pytorch根据layers的name冻结训练方式
Jan 06 Python
Python发送手机动态验证码代码实例
Feb 28 Python
Python存储读取HDF5文件代码解析
Nov 25 Python
python manim实现排序算法动画示例
Aug 14 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
Javascript实例教程(19) 使用HoTMetal(7)
2006/12/23 Javascript
用jscript启动sqlserver
2007/06/21 Javascript
javascript multibox 全选
2009/03/22 Javascript
对象特征检测法判断浏览器对javascript对象的支持
2009/07/25 Javascript
JQuery模板插件 jquery.tmpl 动态ajax扩展
2011/11/10 Javascript
javascript的offset、client、scroll使用方法详解
2012/12/25 Javascript
JavaScript之IE的fireEvent方法详细解析
2013/11/20 Javascript
jquery实现背景墙聚光灯效果示例分享
2014/03/02 Javascript
javascript模拟枚举的简单实例
2014/03/06 Javascript
JS限制文本框只能输入数字和字母方法
2015/02/28 Javascript
js实现带缓冲效果的仿QQ面板折叠菜单代码
2015/09/06 Javascript
详解JavaScript基于面向对象之创建对象(2)
2015/12/10 Javascript
关于JS中setTimeout()无法调用带参函数问题的解决方法
2016/06/21 Javascript
AngularJs html compiler详解及示例代码
2016/09/01 Javascript
基于jQuery实现简单人工智能聊天室
2017/02/10 Javascript
浅谈jQuery中事情的动态绑定
2017/02/12 Javascript
基于JavaScript实现无缝滚动效果
2017/07/21 Javascript
nodejs爬虫初试superagent和cheerio
2018/03/05 NodeJs
使用Vue制作图片轮播组件思路详解
2018/03/21 Javascript
javascript获取元素的计算样式
2019/05/24 Javascript
基于JavaScript实现简单的轮播图
2021/03/03 Javascript
用Python实现web端用户登录和注册功能的教程
2015/04/30 Python
部署Python的框架下的web app的详细教程
2015/04/30 Python
Python使用Beautiful Soup包编写爬虫时的一些关键点
2016/01/20 Python
实例讲解Python中整数的最大值输出
2019/03/17 Python
Django 使用easy_thumbnails压缩上传的图片方法
2019/07/26 Python
Python 测试框架unittest和pytest的优劣
2020/09/26 Python
请用用Java代码写一个堆栈
2012/01/26 面试题
学校运动会霸气口号
2014/06/07 职场文书
汉语专业毕业生自荐信
2014/07/06 职场文书
出资证明书范本(标准版)
2014/09/24 职场文书
2014年团支部年度工作总结
2014/12/24 职场文书
公司地址变更通知
2015/04/25 职场文书
《葡萄沟》教学反思
2016/02/23 职场文书
建房合同协议书
2016/03/21 职场文书
基于Python实现nc批量转tif格式
2022/08/14 Python