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 相关文章推荐
利用Anaconda完美解决Python 2与python 3的共存问题
May 25 Python
python 日志增量抓取实现方法
Apr 28 Python
Django + Uwsgi + Nginx 实现生产环境部署的方法
Jun 20 Python
python 异或加密字符串的实例
Oct 14 Python
Python OpenCV 调用摄像头并截图保存功能的实现代码
Jul 02 Python
新手入门Python编程的8个实用建议
Jul 12 Python
python分割一个文本为多个文本的方法
Jul 22 Python
python异常触发及自定义异常类解析
Aug 06 Python
Django模板语言 Tags使用详解
Sep 09 Python
python 经典数字滤波实例
Dec 16 Python
python文件绝对路径写法介绍(windows)
Dec 25 Python
Python FuzzyWuzzy实现模糊匹配
Apr 28 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/07/17 PHP
ThinkPHP整合百度Ueditor图文教程
2014/10/21 PHP
关于文本框的一些限制控制总结~~
2010/04/15 Javascript
将string解析为json的几种方式小结
2010/11/11 Javascript
JavaScript高级程序设计 阅读笔记(二十一) JavaScript中的XML
2012/09/14 Javascript
原生javascript图片自动或手动切换示例附演示源码
2013/09/04 Javascript
Javascript 数组排序详解
2014/10/22 Javascript
js实现input框文字动态变换显示效果
2015/08/19 Javascript
详解页面滚动值scrollTop在FireFox与Chrome浏览器间的兼容问题
2015/12/03 Javascript
详解Bootstrap创建表单的三种格式(一)
2016/01/04 Javascript
浅析Bootstrip的select控件绑定数据的问题
2016/05/10 Javascript
js中利用cookie实现记住密码功能
2020/08/20 Javascript
基于JavaScript实现评论框展开和隐藏功能
2017/08/25 Javascript
vue中使用cookies和crypto-js实现记住密码和加密的方法
2018/10/18 Javascript
Angular 实现输入框中显示文章标签的实例代码
2018/11/07 Javascript
javascript系统时间设置操作示例
2019/06/17 Javascript
简单了解vue中父子组件如何相互传递值(基础向)
2019/07/12 Javascript
JavaScript实现PC端四格密码输入框功能
2020/02/19 Javascript
详解Vue中Axios封装API接口的思路及方法
2020/10/10 Javascript
Node.js中的异步生成器与异步迭代详解
2021/01/31 Javascript
[06:40]2014DOTA2西雅图国际邀请赛 DK战队巡礼
2014/07/07 DOTA
python笔记(1) 关于我们应不应该继续学习python
2012/10/24 Python
在Windows中设置Python环境变量的实例讲解
2018/04/28 Python
python下的opencv画矩形和文字注释的实现方法
2019/07/09 Python
python实现的生成word文档功能示例
2019/08/23 Python
Flask框架搭建虚拟环境的步骤分析
2019/12/21 Python
matplotlib图例legend语法及设置的方法
2020/07/28 Python
Aerosoles爱柔仕官网:美国舒软女鞋品牌
2017/07/17 全球购物
为什么需要版本控制?
2013/08/08 面试题
CSS实现fullpage.js全屏滚动效果的示例代码
2021/03/24 HTML / CSS
集团薪酬管理制度
2014/01/13 职场文书
人力资源部经理的岗位职责
2014/03/04 职场文书
小学生操行评语
2014/04/22 职场文书
警察先进个人事迹材料
2014/05/16 职场文书
平安工地汇报材料
2014/08/19 职场文书
阿里云Nginx配置https实现域名访问项目(图文教程)
2021/03/31 Servers