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 连连看连接算法
Nov 22 Python
python获取beautifulphoto随机某图片代码实例
Dec 18 Python
Python 列表list使用介绍
Nov 30 Python
python提取页面内url列表的方法
May 25 Python
Python使用Redis实现作业调度系统(超简单)
Mar 22 Python
Python中关于Sequence切片的下标问题详解
Jun 15 Python
Python中的单继承与多继承实例分析
May 10 Python
selenium3+python3环境搭建教程图解
Dec 07 Python
Python 使用 prettytable 库打印表格美化输出功能
Dec 26 Python
Django框架获取form表单数据方式总结
Apr 22 Python
在 Python 中使用 MQTT的方法
Aug 18 Python
Python+Matplotlib+LaTeX玩转数学公式
Feb 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
如何提高MYSQL数据库的查询统计速度 select 索引应用
2007/04/11 PHP
php,ajax实现分页
2008/03/27 PHP
PHP 变量的定义方法
2010/01/26 PHP
php 中文和编码判断代码
2010/05/16 PHP
深入PHP与浏览器缓存的分析
2013/06/03 PHP
PHP获取文件夹大小函数用法实例
2015/07/01 PHP
thinkPHP多语言切换设置方法详解
2016/11/11 PHP
jquery的相对父元素和相对文档定位示例代码
2013/08/02 Javascript
解决Jquery load()加载GB2312页面时出现乱码的两种方案
2013/09/10 Javascript
JS中怎样判断undefined(比较不错的方法)
2014/03/27 Javascript
EasyUI,点击开启编辑框,并且编辑框获得焦点的方法
2015/03/01 Javascript
详解JavaScript异步编程中jQuery的promise对象的作用
2016/05/03 Javascript
CSS3 3D 技术手把手教你玩转
2016/09/02 Javascript
如何学JavaScript?前辈的经验之谈
2016/12/28 Javascript
AngularJS路由实现页面跳转实例
2017/03/03 Javascript
node.js 核心http模块,起一个服务器,返回一个页面的实例
2017/09/11 Javascript
Vue使用watch监听一个对象中的属性的实现方法
2019/05/10 Javascript
解决vue elementUI中table里数字、字母、中文混合排序问题
2020/01/07 Javascript
Mac OS X10.9安装的Python2.7升级Python3.3步骤详解
2013/12/04 Python
深入剖析Python的爬虫框架Scrapy的结构与运作流程
2016/01/20 Python
利用python打印出菱形、三角形以及矩形的方法实例
2017/08/08 Python
Python引用类型和值类型的区别与使用解析
2017/10/17 Python
使用python爬虫获取黄金价格的核心代码
2018/06/13 Python
python远程连接服务器MySQL数据库
2018/07/02 Python
详解Python3中的迭代器和生成器及其区别
2018/10/09 Python
Python实现字符串匹配的KMP算法
2019/04/04 Python
python整合ffmpeg实现视频文件的批量转换
2019/05/31 Python
PyTorch的自适应池化Adaptive Pooling实例
2020/01/03 Python
解决pycharm同一目录下无法import其他文件
2020/02/12 Python
CSS超出文本指定宽度用省略号代替和文本不换行
2016/05/05 HTML / CSS
成品仓管员工作职责
2013/12/29 职场文书
一年级学生评语大全
2014/04/21 职场文书
房产公证委托书范本
2014/09/20 职场文书
Python入门之基础语法详解
2021/05/11 Python
解决linux下redis数据库overcommit_memory问题
2022/02/24 Redis
浅谈Vue的computed计算属性
2022/03/21 Vue.js