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 break语句详解
Mar 11 Python
Python新手实现2048小游戏
Mar 31 Python
举例讲解Python中字典的合并值相加与异或对比
Jun 04 Python
Python处理Excel文件实例代码
Jun 20 Python
django使用xlwt导出excel文件实例代码
Feb 06 Python
python的常用模块之collections模块详解
Dec 06 Python
python二进制文件的转译详解
Jul 03 Python
如何通过50行Python代码获取公众号全部文章
Jul 12 Python
Pytorch 实现冻结指定卷积层的参数
Jan 06 Python
python重要函数eval多种用法解析
Jan 14 Python
Python如何使用OS模块调用cmd
Feb 27 Python
python 绘制国旗的示例
Sep 27 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加密解密的代码
2007/07/16 PHP
PHP 图片文件上传实现代码
2010/12/29 PHP
Laravel 5框架学习之模型、控制器、视图基础流程
2015/04/08 PHP
PHP入门教程之PHP操作MySQL的方法分析
2016/09/11 PHP
PHP文件系统管理(实例讲解)
2017/09/19 PHP
Jquery cookie操作代码
2010/03/14 Javascript
javascript setTimeout()传递函数参数(包括传递对象参数)
2010/04/07 Javascript
ajax 同步请求和异步请求的差异分析
2011/07/04 Javascript
node.js中的events.emitter.listeners方法使用说明
2014/12/10 Javascript
angular.element方法汇总
2015/01/07 Javascript
javascript面向对象程序设计(一)
2015/01/29 Javascript
jQuery结合HTML5制作的爱心树表白动画
2015/02/01 Javascript
15款jQuery分布引导插件分享
2015/02/04 Javascript
JavaScript中Null与Undefined的区别解析
2015/06/30 Javascript
分享jQuery插件的学习笔记
2016/01/14 Javascript
jQuery实现弹出带遮罩层的居中浮动窗口效果
2016/09/12 Javascript
vue2滚动条加载更多数据实现代码
2017/01/10 Javascript
jQuery.cookie.js实现记录最近浏览过的商品功能示例
2017/01/23 Javascript
jQuery EasyUI Draggable拖动组件
2017/03/01 Javascript
Bootstrap组件之下拉菜单,多级菜单及按钮布局方法实例
2017/05/25 Javascript
javascript函数的节流[throttle]与防抖[debounce]
2017/11/15 Javascript
vue+node实现图片上传及预览的示例方法
2018/11/22 Javascript
[02:17]TI4西雅图DOTA2前线报道 啸天mik夫妻档解说
2014/07/08 DOTA
[03:53]2016国际邀请赛中国区预选赛第三日TOP10精彩集锦
2016/06/29 DOTA
Python 字符串大小写转换的简单实例
2017/01/21 Python
python中break、continue 、exit() 、pass终止循环的区别详解
2019/07/08 Python
python 简单的调用有道翻译
2020/11/25 Python
iframe在移动端的缩放的示例代码
2018/10/12 HTML / CSS
俄罗斯电子产品在线商店:UltraTrade
2020/01/30 全球购物
喜之郎果冻广告词
2014/03/20 职场文书
《歌唱二小放牛郎》教学反思
2014/04/19 职场文书
支部书记四风对照材料
2014/08/28 职场文书
终止劳动合同证明书样本
2014/11/19 职场文书
违纪学生保证书
2015/02/27 职场文书
2015年农村党员公开承诺事项
2015/04/28 职场文书
教你如何让spark sql写mysql的时候支持update操作
2022/02/15 MySQL