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 相关文章推荐
MySQL中表的复制以及大型数据表的备份教程
Nov 25 Python
Python利用QQ邮箱发送邮件的实现方法(分享)
Jun 09 Python
Python cookbook(字符串与文本)在字符串的开头或结尾处进行文本匹配操作
Apr 20 Python
对python:print打印时加u的含义详解
Dec 15 Python
Python GUI编程完整示例
Apr 04 Python
10款最好的Python开发编辑器
Jul 03 Python
python与pycharm有何区别
Jul 01 Python
Python读写csv文件流程及异常解决
Oct 20 Python
如何用PyPy让你的Python代码运行得更快
Dec 02 Python
python urllib和urllib3知识点总结
Feb 08 Python
python如何利用cv2模块读取显示保存图片
Jun 04 Python
Python+Selenium实现抖音、快手、B站、小红书、微视、百度好看视频、西瓜视频、微信视频号、搜狐视频、一点号、大风号、趣头条等短视频自动发布
Apr 13 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中操作MySQL数据库的一些要注意的问题
2006/10/09 PHP
php实现指定字符串中查找子字符串的方法
2015/03/17 PHP
PHP实现动态web服务器方法
2015/07/29 PHP
PHP类的特性实例分析
2016/09/28 PHP
yii2 数据库读写分离配置示例
2017/02/10 PHP
php实现的AES加密类定义与用法示例
2018/01/29 PHP
PHP explode()函数用法讲解
2019/02/15 PHP
js 获取、清空input type=&quot;file&quot;的值(示例代码)
2013/12/24 Javascript
node.js中的console用法总结
2014/12/15 Javascript
Validform表单验证总结篇
2016/10/31 Javascript
js实现网页定位导航功能
2017/03/07 Javascript
AngularJS前端页面操作之用户修改密码功能示例
2017/03/27 Javascript
深入探究node之Transform
2017/07/20 Javascript
微信小程序非swiper组件实现的自定义伪3D轮播图效果示例
2018/12/11 Javascript
Vue(定时器)解决mounted不能获取到data中的数据问题
2020/07/30 Javascript
快速解决vue2+vue-cli3项目ie兼容的问题
2020/11/17 Vue.js
利用 Monkey 命令操作屏幕快速滑动
2016/12/07 Python
python3 shelve模块的详解
2017/07/08 Python
详解 Python 读写XML文件的实例
2017/08/02 Python
Python Nose框架编写测试用例方法
2017/10/26 Python
python 删除非空文件夹的实例
2018/04/26 Python
Python中的X[:,0]、X[:,1]、X[:,:,0]、X[:,:,1]、X[:,m:n]和X[:,:,m:n]
2020/02/13 Python
Python操作Jira库常用方法解析
2020/04/10 Python
Python with语句用法原理详解
2020/07/03 Python
Python库安装速度过慢解决方案
2020/07/14 Python
亚洲颇具影响力的男性在线购物零售商:His
2019/11/24 全球购物
大学生职业生涯规划书的基本内容
2014/01/06 职场文书
学校大课间活动方案
2014/01/30 职场文书
捐书活动总结
2014/05/04 职场文书
工作失误检讨书(经典集锦版)
2014/10/17 职场文书
自主招生学校推荐信范文
2015/03/26 职场文书
个人合作协议范本
2015/08/06 职场文书
2019预备党员转正申请书模板2篇!
2019/08/07 职场文书
警用民用对讲机找不同
2022/02/18 无线电
css实现左上角飘带效果的完整代码
2022/03/18 HTML / CSS
nginx静态资源的服务器配置方法
2022/07/07 Servers