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 相关文章推荐
Windows下实现Python2和Python3两个版共存的方法
Jun 12 Python
Python数据可视化正态分布简单分析及实现代码
Dec 04 Python
python模块之paramiko实例代码
Jan 31 Python
Python3爬虫学习之应对网站反爬虫机制的方法分析
Dec 12 Python
python利用thrift服务读取hbase数据的方法
Dec 27 Python
使用Python实现牛顿法求极值
Feb 10 Python
Python requests.post方法中data与json参数区别详解
Apr 30 Python
python中wheel的用法整理
Jun 15 Python
OpenCV Python实现图像指定区域裁剪
Mar 12 Python
python基本算法之实现归并排序(Merge sort)
Sep 01 Python
python中操作文件的模块的方法总结
Feb 04 Python
Python自动化测试基础必备知识点总结
Feb 07 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
基于qmail的完整WEBMAIL解决方案安装详解
2006/10/09 PHP
php设计模式 Strategy(策略模式)
2011/06/26 PHP
XAMPP安装与使用方法详细解析
2013/11/27 PHP
ThinkPHP Mobile使用方法简明教程
2014/06/18 PHP
PHP实现下载远程图片保存到本地的方法
2017/06/19 PHP
php intval函数用法总结
2019/04/14 PHP
javascript import css实例代码
2008/07/18 Javascript
jQuery1.6 使用方法二
2011/11/23 Javascript
Jquery实现点击切换图片并隐藏显示内容(2种方法实现)
2013/04/11 Javascript
JS实现点击下载的小例子
2013/07/10 Javascript
JavaScript中的字符串操作详解
2013/11/12 Javascript
javaScript中push函数用法实例分析
2015/06/08 Javascript
JS三级可折叠菜单实现方法
2016/02/29 Javascript
JS中dom0级事件和dom2级事件的区别介绍
2016/05/05 Javascript
JS异步文件分片断点上传的实现思路
2016/12/25 Javascript
JavaScript实现打地鼠小游戏
2020/04/23 Javascript
ES6新特性之类(Class)和继承(Extends)相关概念与用法分析
2017/05/24 Javascript
前端html中jQuery实现对文本的搜索功能并把搜索相关内容显示出来
2017/11/14 jQuery
JQuery发送ajax请求时中文乱码问题解决
2019/11/14 jQuery
微信小程序swiper使用网络图片不显示问题解决
2019/12/13 Javascript
微信小程序 bindtap 传参的实例代码
2020/02/21 Javascript
ElementUI 修改默认样式的几种办法(小结)
2020/07/29 Javascript
快速解决vue2+vue-cli3项目ie兼容的问题
2020/11/17 Vue.js
Python 给某个文件名添加时间戳的方法
2018/10/16 Python
Python用字典构建多级菜单功能
2019/07/11 Python
numpy.meshgrid()理解(小结)
2019/08/01 Python
tensorflow从ckpt和从.pb文件读取变量的值方式
2020/05/26 Python
python 使用建议与技巧分享(四)
2020/08/18 Python
Python Pillow(PIL)库的用法详解
2020/09/19 Python
Ticketmaster德国票务网站:购买音乐会和体育等门票
2016/11/14 全球购物
如何查找网页漏洞
2016/06/22 面试题
哈理工毕业生的求职信
2013/12/22 职场文书
局领导领导班子四风对照检查材料
2014/09/27 职场文书
2014年图书馆个人工作总结
2014/12/18 职场文书
奖金申请报告模板
2015/05/15 职场文书
如何书写读后感?(附范文)
2019/07/26 职场文书