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实现的ini文件操作类分享
Nov 20 Python
Python3实现将文件归档到zip文件及从zip文件中读取数据的方法
May 22 Python
总结python爬虫抓站的实用技巧
Aug 09 Python
使用Python &amp; Flask 实现RESTful Web API的实例
Sep 19 Python
pandas对指定列进行填充的方法
Apr 11 Python
Python设计模式之观察者模式原理与用法详解
Jan 16 Python
详解利用python+opencv识别图片中的圆形(霍夫变换)
Jul 01 Python
使用python绘制cdf的多种实现方法
Feb 25 Python
Python解释器及PyCharm工具安装过程
Feb 26 Python
python检查目录文件权限并修改目录文件权限的操作
Mar 11 Python
python中什么是面向对象
Jun 11 Python
DataFrame.groupby()所见的各种用法详解
Jun 14 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
PHP4中实现动态代理
2006/10/09 PHP
PHP游戏编程25个脚本代码
2011/02/08 PHP
php通用防注入程序 推荐
2011/02/26 PHP
php实现概率性随机抽奖代码
2016/01/02 PHP
高质量PHP代码的50个实用技巧必备(上)
2016/01/22 PHP
PHP实现的简单AES加密解密算法实例
2017/05/29 PHP
PHP实现对图片的反色处理功能【测试可用】
2018/02/01 PHP
PHP一致性hash分布式算法封装类定义与用法示例
2018/08/04 PHP
filemanage功能中用到的common.js
2007/04/08 Javascript
jquery.messager.js插件导致页面抖动的解决方法
2013/07/14 Javascript
基于JS分页控件实现简单美观仿淘宝分页按钮效果
2016/11/07 Javascript
js 性能优化之快速响应的用户界面
2017/02/15 Javascript
JavaScript高阶函数_动力节点Java学院整理
2017/06/28 Javascript
vue2.x 父组件监听子组件事件并传回信息的方法
2017/07/17 Javascript
详解ajax的data参数错误导致页面崩溃
2018/04/30 Javascript
详解vue+webpack+express中间件接口使用
2018/07/17 Javascript
Vue插件打包与发布的方法示例
2018/08/20 Javascript
Vue 路由切换时页面内容没有重新加载的解决方法
2018/09/01 Javascript
layui 上传插件 带预览 非自动上传功能的实例(非常实用)
2019/09/23 Javascript
在Django的模型和公用函数中使用惰性翻译对象
2015/07/27 Python
简单谈谈Python中的json与pickle
2017/07/19 Python
python实现指定文件夹下的指定文件移动到指定位置
2018/09/17 Python
selenium+python自动化测试之使用webdriver操作浏览器的方法
2019/01/23 Python
pycharm配置git(图文教程)
2019/08/16 Python
python实点云分割k-means(sklearn)详解
2020/05/28 Python
python实现图像高斯金字塔的示例代码
2020/12/11 Python
基于IE10/HTML5 开发
2013/04/22 HTML / CSS
Html5与App的通讯方式详解
2019/10/24 HTML / CSS
汽车维修专业毕业生的求职信分享
2013/12/04 职场文书
自我鉴定怎么写
2013/12/05 职场文书
参观监狱心得体会
2014/01/02 职场文书
快递业务员岗位职责
2014/01/06 职场文书
群众路线剖析材料
2014/09/30 职场文书
2014年党员个人工作总结
2014/12/02 职场文书
幼师小班个人总结
2015/02/12 职场文书
法制教育观后感
2015/06/17 职场文书