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 判断一个进程是否存在
Apr 09 Python
Python中扩展包的安装方法详解
Jun 14 Python
python的pdb调试命令的命令整理及实例
Jul 12 Python
详解Python3.6的py文件打包生成exe
Jul 13 Python
Python给图像添加噪声具体操作
Mar 03 Python
python使用paramiko模块通过ssh2协议对交换机进行配置的方法
Jul 25 Python
Python进阶之使用selenium爬取淘宝商品信息功能示例
Sep 16 Python
python 函数的缺省参数使用注意事项分析
Sep 17 Python
numpy 矩阵形状调整:拉伸、变成一位数组的实例
Jun 18 Python
keras中的History对象用法
Jun 19 Python
聊聊Python pandas 中loc函数的使用,及跟iloc的区别说明
Mar 03 Python
Python如何解决secure_filename对中文不支持问题
Jul 16 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
一个简单的MySQL数据浏览器
2006/10/09 PHP
PHP 文件上传功能实现代码
2009/06/24 PHP
PHP 时间转换Unix时间戳代码
2010/01/22 PHP
PHP服务器页面间跳转实现方法
2012/08/02 PHP
php获取服务器端mac和客户端mac的地址支持WIN/LINUX
2014/05/15 PHP
从刷票了解获得客户端IP的方法
2015/09/21 PHP
php动态读取数据清除最右边距的方法
2017/04/12 PHP
PHP+jQuery实现滚屏无刷新动态加载数据功能详解
2017/05/04 PHP
php+ajax实现无刷新文件上传功能(ajaxuploadfile)
2018/02/11 PHP
jQuery Deferred和Promise创建响应式应用程序详细介绍
2013/03/05 Javascript
IE8对JS通过属性和数组遍历解析不一样的地方探讨
2013/05/06 Javascript
解析js原生方法创建表格效率测试
2013/07/08 Javascript
Node.js与PHP、Python的字符处理性能对比
2014/07/06 Javascript
简易的投票系统以及js刷票思路和方法
2015/04/07 Javascript
使用AngularJS制作一个简单的RSS阅读器的教程
2015/06/18 Javascript
nodejs导出excel的方法
2015/06/30 NodeJs
JS实现的新浪微博大厅文字内容滚动效果代码
2015/11/05 Javascript
快速解决jquery.touchSwipe左右滑动和垂直滚动条冲突
2016/04/15 Javascript
jquery 中toggle的2种用法详解(推荐)
2016/09/02 Javascript
JS实现仿PS的调色板效果完整实例
2016/12/21 Javascript
Angular.js中$resource高大上的数据交互详解
2017/07/30 Javascript
python修改注册表终止360进程实例
2014/10/13 Python
玩转python爬虫之cookie使用方法
2016/02/17 Python
Python使用smtp和pop简单收发邮件完整实例
2018/01/09 Python
在python中pandas读文件,有中文字符的方法
2018/12/12 Python
python如何导出微信公众号文章方法详解
2020/08/31 Python
免费获得微软MCSD证书赶快行动吧!
2012/11/13 HTML / CSS
编写html5时调试发现脚本php等网页js、css等失效
2013/12/31 HTML / CSS
街头时尚在线:JESSICABUURMAN
2019/06/16 全球购物
中学劳技课教师的自我评价
2014/02/05 职场文书
廉洁校园实施方案
2014/05/25 职场文书
学校通报表扬范文
2015/05/04 职场文书
2015年女职工工作总结
2015/05/15 职场文书
2015年大学组织委员个人工作总结
2015/10/23 职场文书
HR在给员工开具离职证明时,需要注意哪些问题?
2019/07/03 职场文书
python接口测试返回数据为字典取值方式
2022/02/12 Python