Python Django 简单分页的实现代码解析


Posted in Python onAugust 21, 2019

这篇文章主要介绍了Python Django 简单分页的实现代码解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

models.py:

from django.db import models
class Book(models.Model):
  title = models.CharField(max_length=32)
  def __str__(self):
    return self.title
  class Meta:
    db_table = "books"

批量创建 106 条数据

import os
if __name__ == '__main__':
  os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite3.settings")
  import django
  django.setup()
  from app01 import models
  # 106 个书籍对象
  objs = [models.Book(title="《Python 的故事第{}版》".format(i)) for i in range(116)]
  # 在数据库中批量创建, 10 次一提交
  models.Book.objects.bulk_create(objs, 10)

views.py:

from django.shortcuts import render
from app01 import models 
def book_list(request):
  # 从 URL 中取参数
  page_num = request.GET.get("page")
  print(page_num, type(page_num))
  page_num = int(page_num)
 
  # 定义两个变量保存数据从哪儿取到哪儿
  data_start = (page_num-1)*10
  data_end = page_num*10
 
  # 书籍总数
  total_count = models.Book.objects.all().count()
 
  # 每一页显示多少条数据
  per_page = 10
 
  # 总共需要多少页码来显示
  total_page, m = divmod(total_count, per_page)
  if m:
    total_page += 1 
  all_book = models.Book.objects.all()[data_start:data_end]
 
  # 拼接 html 的分页代码
  html_list = []
  for i in range(1, total_page+1):
    tmp = '<li><a href="/book_list/?page={0}" rel="external nofollow" >{0}</a></li>'.format(i)
    html_list.append(tmp) 
  page_html = "".join(html_list) 
  return render(request, "book_list.html", {"books": all_book, "page_html": page_html})

book_list.html:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>书籍列表</title>
  <link rel="stylesheet" href="/static/bootstrap/css/bootstrap.min.css" rel="external nofollow" >
</head>
<body> 
<div class="container"> 
  <table class="table table-bordered">
    <thead>
    <tr>
      <th>序号</th>
      <th>id</th>
      <th>书名</th>
    </tr>
    </thead>
    <tbody>
    {% for book in books %}
      <tr>
        <td>{{ forloop.counter }}</td>
        <td>{{ book.id }}</td>
        <td>{{ book.title }}</td>
      </tr>
    {% endfor %} 
    </tbody>
  </table> 
  <nav aria-label="Page navigation">
    <ul class="pagination">
      {{ page_html|safe }}
    </ul>
  </nav> 
</div>
</body>
</html>

运行结果:

Python Django 简单分页的实现代码解析

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
在Python中操作字典之fromkeys()方法的使用
May 21 Python
Python判断字符串与大小写转换
Jun 08 Python
Python中的列表生成式与生成器学习教程
Mar 13 Python
Python基于socket模块实现UDP通信功能示例
Apr 10 Python
python爬取指定微信公众号文章
Dec 20 Python
pandas中的series数据类型详解
Jul 06 Python
python实现简易学生信息管理系统
Apr 05 Python
利用python、tensorflow、opencv、pyqt5实现人脸实时签到系统
Sep 25 Python
PyCharm永久激活方式(推荐)
Sep 22 Python
基于python计算并显示日间、星期客流高峰
May 07 Python
浅谈Python3中print函数的换行
Aug 05 Python
Python多分支if语句的使用
Sep 03 Python
Django项目之Elasticsearch搜索引擎的实例
Aug 21 #Python
python爬虫豆瓣网的模拟登录实现
Aug 21 #Python
Python Django 页面上展示固定的页码数实现代码
Aug 21 #Python
详解Python利用random生成一个列表内的随机数
Aug 21 #Python
Python Django 封装分页成通用的模块详解
Aug 21 #Python
Django之编辑时根据条件跳转回原页面的方法
Aug 21 #Python
python numpy 常用随机数的产生方法的实现
Aug 21 #Python
You might like
php若干单维数组遍历方法的比较
2011/09/20 PHP
PHP实现自动登入google play下载app report的方法
2014/09/23 PHP
php画图实例
2014/11/05 PHP
PHP框架性能测试报告
2016/05/08 PHP
PHP常见的6个错误提示及解决方法
2016/07/07 PHP
一键生成各种尺寸Icon的php脚本(实例)
2017/02/08 PHP
PHP实现执行外部程序的方法详解
2017/08/17 PHP
PHP获取链表中倒数第K个节点的方法
2018/01/18 PHP
使用 PHP Masked Package 屏蔽敏感数据的实现方法
2019/10/15 PHP
Laravel框架自定义分页样式操作示例
2020/01/26 PHP
JavaScript为对象原型prototype添加属性的两种方式
2010/08/01 Javascript
超酷的网页音乐播放器DewPlayer使用方法
2010/12/18 Javascript
jQuery 瀑布流 浮动布局(一)(延迟AJAX加载图片)
2012/05/23 Javascript
iframe子父页面调用js函数示例
2013/11/07 Javascript
JavaScript中的undefined学习总结
2013/11/30 Javascript
jQuery实现单击弹出Div层窗口效果(可关闭可拖动)
2015/09/19 Javascript
JavaScript实现256色转灰度图
2017/02/22 Javascript
Angular 4.x中表单Reactive Forms详解
2017/04/25 Javascript
vue使用axios跨域请求数据问题详解
2017/10/18 Javascript
Angular实现下拉框模糊查询功能示例
2018/01/03 Javascript
微信小程序实现红包雨功能
2018/07/11 Javascript
React性能优化系列之减少props改变的实现方法
2019/01/17 Javascript
[07:09]DOTA2-DPC中国联赛 正赛 Ehome vs Elephant 选手采访
2021/03/11 DOTA
pyqt5移动鼠标显示坐标的方法
2019/06/21 Python
详解python内置常用高阶函数(列出了5个常用的)
2020/02/21 Python
Numpy(Pandas)删除全为零的列的方法
2020/09/11 Python
美国网上鞋子零售商:Dr. Scholl’s Shoes
2017/11/17 全球购物
迪梵英国官方网站:Darphin英国
2017/12/06 全球购物
护理自荐信
2013/10/22 职场文书
《雨霖铃》听课反思
2014/02/13 职场文书
再婚婚前财产协议书范本
2014/10/19 职场文书
我的法兰西岁月观后感
2015/06/09 职场文书
MySQL中日期型单行函数代码详解
2021/06/21 MySQL
MySQL的Query Cache图文详解
2021/07/01 MySQL
Pandas数据结构之Series的使用
2022/03/31 Python
Redis Lua脚本实现ip限流示例
2022/07/15 Redis