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解析json文件相关知识学习
Mar 01 Python
快速入手Python字符编码
Aug 03 Python
Python队列的定义与使用方法示例
Jun 24 Python
python3实现点餐系统
Jan 24 Python
PyQt4编程之让状态栏显示信息的方法
Jun 18 Python
Django Admin中增加导出Excel功能过程解析
Sep 04 Python
Python 中的 import 机制之实现远程导入模块
Oct 29 Python
python获取依赖包和安装依赖包教程
Feb 13 Python
Python学习笔记之装饰器
Aug 06 Python
pycharm中选中一个单词替换所有重复单词的实现方法
Nov 17 Python
Python selenium的这三种等待方式一定要会!
Jun 10 Python
Python基于百度AI实现抓取表情包
Jun 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简单图像创建入门实例
2015/06/10 PHP
php+mysql开发的最简单在线题库(在线做题系统)完整案例
2019/03/30 PHP
用 Javascript 验证表单(form)中多选框(checkbox)值
2009/09/08 Javascript
js 多浏览器分别判断代码
2010/04/01 Javascript
JavaScript识别网页关键字并进行描红的方法
2015/11/09 Javascript
jQuery如何获取动态添加的元素
2016/06/24 Javascript
js和jQuery以及easyui实现对下拉框的指定赋值方法
2018/01/23 jQuery
你点的 ES6一些小技巧,请查收
2018/04/25 Javascript
Vue实现侧边菜单栏手风琴效果实例代码
2018/05/31 Javascript
angular中如何绑定iframe中src的方法
2019/02/01 Javascript
python3编写C/S网络程序实例教程
2014/08/25 Python
Django小白教程之Django用户注册与登录
2016/04/22 Python
django开发之settings.py中变量的全局引用详解
2017/03/29 Python
通过PYTHON来实现图像分割详解
2019/06/26 Python
DataFrame.to_excel多次写入不同Sheet的实例
2019/12/02 Python
购买瑞典当代设计的腕表和太阳眼镜:TRIWA
2016/10/30 全球购物
Solid & Striped官网:美国泳装品牌
2019/06/19 全球购物
美国美食礼品篮网站:Gourmet Gift Baskets
2019/12/15 全球购物
北京一家公司的.net开发工程师笔试题
2012/04/17 面试题
美工的岗位职责
2013/11/14 职场文书
工厂实习感言
2014/01/14 职场文书
运动会广播稿400字
2014/01/25 职场文书
班主任班级寄语大全
2014/04/04 职场文书
三八妇女节活动总结
2014/05/04 职场文书
关于运动会的口号
2014/06/07 职场文书
手机被没收的检讨书
2014/10/04 职场文书
2014年教学工作总结
2014/11/13 职场文书
亮剑观后感
2015/06/05 职场文书
单位接收证明格式
2015/06/18 职场文书
英语投诉信范文
2015/07/03 职场文书
主婚人致辞精选
2015/07/28 职场文书
导游词之太原天龙山
2020/01/02 职场文书
pytorch finetuning 自己的图片进行训练操作
2021/06/05 Python
教你如何让spark sql写mysql的时候支持update操作
2022/02/15 MySQL
python使用shell脚本创建kafka连接器
2022/04/29 Python
Springboot集成kafka高级应用实战分享
2022/08/14 Java/Android