视图函数中的代码
from django.shortcuts import render, HttpResponse, redirect
import json
from django.core.paginator import Paginator, EmptyPage
from ajaxdemo.models import Book def bool_list(request):
book_list = Book.objects.all()
# 分页器 Paginator(要进行分页的数据,每页显示几条数据)
paginator = Paginator(book_list, 10) # 得到总的 paginator对象 # print("count:", paginator.count) # 数据总数
num_pages = paginator.num_pages # 总页数 # page_range = paginator.page_range # 页码的列表
current_page_num = int(float(request.GET.get("page", 1))) if num_pages > 11:
if current_page_num - 5 < 1:
page_range = range(1, 11)
elif current_page_num + 5 > num_pages:
page_range = range(num_pages - 10, num_pages + 1)
else:
page_range = range(current_page_num - 5, current_page_num + 6)
else:
page_range = paginator.page_range # 获取浏览器发来的关于页码的信息。 默认显示第一页. int(float())转换一下。防止用户搞个小数过来
try:
# 如何取到 某一页的数据
current_page = paginator.page(current_page_num) # 第一页的数据,返回一个可迭代页数的对象
# for i in page: # 遍历第一页的所有数据
# print(i)
# print(current_page.object_list) # 获取当前页所有的数据 返回QuerySet对象。包含了当前页的所有book对象
except EmptyPage as e: # 捕获用户输入的数字超出或者太小时,默认返回首页
current_page = paginator.page(1) return render(request, "ajaxdemo/book_list.html", locals())
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="x-ua-compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="/static/bootstrap/css/bootstrap.css">
<script type="text/javascript" src="/static/jquery-3.3.1.js"></script>
<title>Title</title>
<style>
{#.pagination > li{display: none}#}
.pagination > li show {
display: inline
}
</style>
</head>
<body>
<ul>
{% for book in current_page %}
<li>{{ forloop.counter }},{{ book.title }},{{ book.price }}</li>
{% endfor %}
</ul>
<nav aria-label="Page navigation">
<ul class="pagination">
{% if current_page.has_previous %}
<li><a href="?page={{ current_page.previous_page_number }}" aria-label="Previous"><span aria-hidden="true">上一页</span></a></li>
{% else %}
<li class="disabled"><a href="" aria-label="Previous"><span aria-hidden="true">上一页</span></a></li>
{% endif %} {% for page_num in page_range %}
{% if current_page_num == page_num %}
<li class="active"><a href="?page={{ page_num }}">{{ page_num }}</a></li>
{% else %}
<li><a href="?page={{ page_num }}">{{ page_num }}</a></li>
{% endif %}
{% endfor %} {% if current_page.has_next %}
<li><a href="?page={{ current_page.next_page_number }}" aria-label="Next"><span aria-hidden="true">下一页</span></a></li>
{% else %}
<li class="disabled"><a href="" aria-label="Next"><span aria-hidden="true">下一页</span></a></li>
{% endif %}
</ul>
</nav>
</body>
</html>

前端,代码

django分页的东西, 不详细, 但是也足够了。的更多相关文章

  1. django 分页组件

      一.仿django分页功能自己实现 urls.py 1 2 3 4 5 6 7 8 9 from django.conf.urls import url from django.contrib i ...

  2. django 分页(2) 使用类 页码显示

    django 分页显示页码 views.py 显示11页码 ) < 起始位置 - 10总页数 else 总页数 > IF 当前页 小于 起始位置 结束页 IF 当前页 大于 IF 如果结束 ...

  3. Django 分页功能

    Django 分页功能比较强大,这边是结合官网的内容写的可以参考 https://docs.djangoproject.com/en/1.9/topics/pagination/ 分页命令行练习案列 ...

  4. 原生的 django 分页

    原始的 django 分页 # 基本 写法 class Paginator(object): def __init__(self, object_list, per_page, orphans=0, ...

  5. Django分页(二)

    Django分页(二) 要求 .设定每页显示数据条数 # # .用户输入页码(第一页.第二页...) # # .设定显示多少页号 # # .获取当前数据总条数 # # .根据设定显示多少页号和数据总条 ...

  6. Django分页(一)

    Django分页(一) 手动实现简单分页 HTML <!DOCTYPE html> <html lang="en"> <head> <me ...

  7. django 分页出现 UnorderedObjectListWarning 错误

    django 分页出现此错误: UnorderedObjectListWarning: Pagination may yield inconsistent results with an unorde ...

  8. 2019.03.20 mvt,Django分页

    MVT模式   MVT各部分的功能:   M全拼为Model,与MVC中的M功能相同,负责和数据库交互,进行数据处理.       V全拼为View,与MVC中的C功能相同,接收请求,进行业务处理,返 ...

  9. Django分页类的封装

    Django分页类的封装 Django ORM  封装 之前有提到(Django分页的实现)会多次用到分页,将分页功能封装起来能极大提高效率. 其实不是很难,就是将之前实现的代码全都放到类中,将需要用 ...

随机推荐

  1. U盘无法访问

    U盘无法访问 方法/步骤   首先,Win+R,打开“运行”窗口.   在打开的运行窗口中,输入cmd回车     这时会打开这样的一个窗口   这时输入chkdsk g: /f 需要说明的是,g这个 ...

  2. RabbitMQ系列教程之七:RabbitMQ的 C# 客户端 API 的简介(转载)

    RabbitMQ系列教程之七:RabbitMQ的 C# 客户端 API 的简介 今天这篇博文是我翻译的RabbitMQ的最后一篇文章了,介绍一下RabbitMQ的C#开发的接口.好了,言归正传吧. N ...

  3. html兼容手机浏览器

    其实主要就是改掉HTML页面声明: 在网页中加入以下代码,就可以正常显示了: <meta name="viewport" content="width=device ...

  4. How ASP.NET MVC Works ? (Artech)

    一.ASP.NET + MVC IIS与ASP.NET管道 MVC.MVP以及Model2[上篇] MVC.MVP以及Model2[下篇] ASP.NET MVC是如何运行的[1]: 建立在“伪”MV ...

  5. ARP协议,以及ARP欺骗

    1.定义: 地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议.主机发送信息时将包含目标IP地址的ARP请求广播到网络上 ...

  6. 一张图知道HTML5布局(图)

  7. 【deep learning】斯坦福CS231n—深度学习与计算机视觉(资料汇总)

    官网 链接:CS231n: Convolutional Neural Networks for Visual Recognition Notes: 链接:http://cs231n.github.io ...

  8. isPlainObject的解释

    参考: http://www.365mini.com/page/jquery_isplainobject.htm 先来看下使用案例: //在当前页面内追加换行标签和指定的HTML内容 function ...

  9. MongoDB常用查询,排序,group,SpringDataMongoDB update group

    MongoDB查询 指定查询并排序 db.getCollection('location').find({"site.id":"川A12345","s ...

  10. ASP.NET 简介

    简介:ASP.NET - 制作网站应用程序的技术1.  WebForm 2.  MVC 什么东西? winform 界面 - 后台 - 数据库 共同组合出来的程序:ASP.NET 界面(HTML+CS ...