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实现的二维码生成小软件
Jul 11 Python
详解Django中的form库的使用
Jul 18 Python
使用Python的turtle模块画图的方法
Nov 15 Python
Python实现邮件的批量发送的示例代码
Jan 23 Python
简单谈谈Python的pycurl模块
Apr 07 Python
Python统计python文件中代码,注释及空白对应的行数示例【测试可用】
Jul 25 Python
Django实现网页分页功能
Oct 31 Python
利用matplotlib为图片上添加触发事件进行交互
Apr 23 Python
如何打包Python Web项目实现免安装一键启动的方法
May 21 Python
浅析Python 多行匹配模式
Jul 24 Python
PyCharm中关于安装第三方包的三个建议
Sep 17 Python
pytorch 中forward 的用法与解释说明
Feb 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实现Ftp用户的在线管理
2012/02/16 PHP
解析PHP将对象转换成数组的方法(兼容多维数组类型)
2013/06/21 PHP
CodeIgniter多语言实现方法详解
2016/01/20 PHP
PHP获取本周所有日期或者最近七天所有日期的方法
2018/06/20 PHP
use jscript Create a SQL Server database
2007/06/16 Javascript
ExtJS 学习专题(一) 如何应用ExtJS(附实例)
2010/03/11 Javascript
asp.net+js 实现无刷新上传解析csv文件的代码
2010/05/17 Javascript
qq悬浮代码(兼容各个浏览器)
2014/01/29 Javascript
node.js中的fs.openSync方法使用说明
2014/12/17 Javascript
jQuery的load()方法及其回调函数用法实例
2015/03/25 Javascript
JavaScript操作Cookie方法实例分析
2015/05/27 Javascript
JavaScript实现字符串与日期的互相转换及日期的格式化
2016/03/07 Javascript
jQuery自定义组件(导入组件)
2016/11/08 Javascript
JavaScript简单计算人的年龄示例
2017/04/15 Javascript
jquery 输入框查找关键字并提亮颜色的实例代码
2018/01/23 jQuery
完美解决iview 的select下拉框选项错位的问题
2018/03/02 Javascript
详解Vue.js iview实现树形权限表(可扩展表)
2018/09/30 Javascript
微信实现自动跳转到用其他浏览器打开指定APP下载
2019/02/15 Javascript
vue 的 solt 子组件过滤过程解析
2019/09/07 Javascript
python基于BeautifulSoup实现抓取网页指定内容的方法
2015/07/09 Python
利用Pandas 创建空的DataFrame方法
2018/04/08 Python
python 解压pkl文件的方法
2018/10/25 Python
PyQt5根据控件Id获取控件对象的方法
2019/06/25 Python
python数值基础知识浅析
2019/11/19 Python
python操作cfg配置文件方式
2019/12/22 Python
Python第三方库的几种安装方式(小结)
2020/04/03 Python
Python发送邮件封装实现过程详解
2020/05/09 Python
Python猫眼电影最近上映的电影票房信息
2020/09/18 Python
Python如何执行系统命令
2020/09/23 Python
纯CSS3实现带动画效果导航菜单无需js
2013/09/27 HTML / CSS
HTML5本地数据库基础操作详解
2016/04/26 HTML / CSS
国际贸易专业个人求职信范文分享
2013/12/14 职场文书
文艺演出策划方案
2014/06/07 职场文书
水利局群众路线专题民主生活会发言材料
2014/09/21 职场文书
小时代观后感
2015/06/10 职场文书
导游经典开场白——导游词
2019/04/17 职场文书