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实现栈的方法
May 26 Python
Python列表推导式与生成器表达式用法示例
Feb 08 Python
使用Python实现在Windows下安装Django
Oct 17 Python
Pandas Shift函数的基础入门学习笔记
Nov 16 Python
Python3实现计算两个数组的交集算法示例
Apr 03 Python
Python OS模块实例详解
Apr 15 Python
对Python的交互模式和直接运行.py文件的区别详解
Jun 29 Python
python实现两个dict合并与计算操作示例
Jul 01 Python
python和php学习哪个更有发展
Jun 17 Python
python 实现数据库中数据添加、查询与更新的示例代码
Dec 07 Python
python中redis包操作数据库的教程
Apr 19 Python
Python matplotlib安装以及实现简单曲线的绘制
Apr 26 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作的文本留言本的例子(五)
2006/10/09 PHP
PHP学习之字符串比较和查找
2011/04/17 PHP
PHP结合jQuery实现找回密码
2015/07/22 PHP
PHP实现冒泡排序的简单实例
2016/05/26 PHP
PHP实现批量重命名某个文件夹下所有文件的方法
2017/09/04 PHP
在Laravel5中正确设置文件权限的方法
2019/05/22 PHP
在textarea中屏蔽js的某个function的javascript代码
2007/04/20 Javascript
JavaScript 基础篇(一)
2012/03/30 Javascript
js中Math之random,round,ceil,floor的用法总结
2013/12/26 Javascript
js实现键盘自动打字效果
2016/12/23 Javascript
使用jQuery卸载全部事件的思路详解
2017/04/03 jQuery
nodejs中密码加密处理操作详解
2018/03/20 NodeJs
vue+element-ui实现表格编辑的三种实现方式
2018/10/31 Javascript
基于node.js实现爬虫的讲解
2019/02/18 Javascript
javascript实现画板功能
2020/04/12 Javascript
详解如何在vue+element-ui的项目中封装dialog组件
2020/12/11 Vue.js
python利用elaphe制作二维条形码实现代码
2012/05/25 Python
Python的Django框架中从url中捕捉文本的方法
2015/07/20 Python
python实现文本去重且不打乱原本顺序
2016/01/26 Python
Python中的单继承与多继承实例分析
2018/05/10 Python
Python使用min、max函数查找二维数据矩阵中最小、最大值的方法
2018/05/15 Python
python多进程(加入进程池)操作常见案例
2019/10/21 Python
HTML5实现直播间评论滚动效果的代码
2020/05/27 HTML / CSS
adidas爱尔兰官方网站:阿迪达斯运动鞋和运动服
2019/11/01 全球购物
计算机专业毕业生求职信分享
2013/12/24 职场文书
2014学雷锋活动总结
2014/03/09 职场文书
我的教育故事演讲稿
2014/05/04 职场文书
2014年化验室工作总结
2014/11/21 职场文书
大学生自荐信怎么写
2015/03/26 职场文书
2015年酒店客房部工作总结
2015/04/25 职场文书
公司回复函格式
2015/07/14 职场文书
2015年秋季运动会前导词
2015/07/20 职场文书
清明节随笔
2015/08/15 职场文书
初中生物教学反思
2016/02/20 职场文书
Java 实现限流器处理Rest接口请求详解流程
2021/11/02 Java/Android
box-shadow单边阴影的实现
2023/05/21 HTML / CSS