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实现通过文件路径获取文件hash值的方法
Apr 29 Python
Python常见字符串操作函数小结【split()、join()、strip()】
Feb 02 Python
详谈Pandas中iloc和loc以及ix的区别
Jun 08 Python
python+splinter自动刷新抢票功能
Sep 25 Python
对python requests发送json格式数据的实例详解
Dec 19 Python
如何使用Python进行OCR识别图片中的文字
Apr 01 Python
几个适合python初学者的简单小程序,看完受益匪浅!(推荐)
Apr 16 Python
Anconda环境下Vscode安装Python的方法详解
Mar 29 Python
如何基于线程池提升request模块效率
Apr 18 Python
Python yield生成器和return对比代码实例
Apr 20 Python
python异步Web框架sanic的实现
Apr 27 Python
python 实现两个npy档案合并
Jul 01 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+javascript模拟Matrix画面
2006/10/09 PHP
php入门学习知识点三 PHP上传
2011/07/14 PHP
基于JQuery+PHP编写砸金蛋中奖程序
2015/09/08 PHP
javascript 鼠标拖动图标技术
2010/02/07 Javascript
jquery 模拟类搜索框自动完成搜索提示功能(改进)
2010/05/24 Javascript
Jquery实现弹出层分享微博插件具备动画效果
2013/04/03 Javascript
jquery 触发a链接点击事件解决方案
2013/05/02 Javascript
js实例属性和原型属性示例详解
2014/11/23 Javascript
jquery实现鼠标滑过显示提示框的方法
2015/02/05 Javascript
JavaScript获取DOM元素的11种方法总结
2015/04/25 Javascript
js 动态生成html 触发事件传参字符转义的实例
2017/02/14 Javascript
Node.js通过身份证号验证年龄、出生日期与性别方法示例
2017/03/09 Javascript
Node.js连接mongodb实例代码
2017/06/06 Javascript
原生JS获取元素的位置与尺寸实现方法
2017/10/18 Javascript
详解使用VueJS开发项目中的兼容问题
2018/08/02 Javascript
快速解决vue-cli在ie9+中无效的问题
2018/09/04 Javascript
vue中使用better-scroll实现滑动效果及注意事项
2018/11/15 Javascript
Js实现复选框的全选、全不选反选功能代码实例
2020/02/28 Javascript
15分钟上手vue3.0(小结)
2020/05/20 Javascript
vue element实现表格合并行数据
2020/11/30 Vue.js
Python的Django框架中的URL配置与松耦合
2015/07/15 Python
Sanic框架蓝图用法实例分析
2018/07/17 Python
Python使用while循环花式打印乘法表
2019/01/28 Python
Python 实现一个手机号码获取妹子名字的功能
2019/09/25 Python
flask框架json数据的拿取和返回操作示例
2019/11/28 Python
Keras设置以及获取权重的实现
2020/06/19 Python
Origins悦木之源英国官网:雅诗兰黛集团高端植物护肤品牌
2017/11/06 全球购物
美国领先的低折扣旅行网站:Hotwire
2019/01/19 全球购物
优秀教师工作感言
2014/02/16 职场文书
运动会演讲稿200字
2014/08/25 职场文书
家属答谢词
2015/01/05 职场文书
体育委员竞选稿
2015/11/21 职场文书
最新的离婚协议书范本!
2019/07/02 职场文书
关于企业的执行力标语大全
2020/01/06 职场文书
Android中View.post和Handler.post的关系
2022/06/05 Java/Android
二维码条形码生成的JavaScript脚本库
2022/07/07 Javascript