视图函数中的代码
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. springboot 项目 注意事项

    SpringBoot出现下列错误. Your ApplicationContext is unlikely to start due to a @ComponentScan of the defaul ...

  2. T-SQL行合并成列与列拆分成行

    本文出处:http://www.cnblogs.com/wy123/p/6910468.html 感觉最近sql也没少写,突然有一点生疏了,对于用的不是太频繁的一些操作,时间一久就容易生. 多行的某一 ...

  3. sqlalchemy 学习--单表操作

    以下所有代码片段都使用了统一的引用,该引用如下: from sqlalchemy import create_engine, ForeignKey from sqlalchemy.ext.declar ...

  4. Java学习01 (第一遍)

    java se - 桌面 java ee - 网页 Jdk :Jre 区别Jdk-开发环境必要Jre-运行环境需要Jdk包含Jre,安装完Jdk就可以了 Javac Demo1.java-Javac ...

  5. 判断素数(翁凯男神MOOC)

    从2到x-1测试是否可以整除 int isPrime(int x); int main(int argc, char **argv) { int x; scanf("%d",&am ...

  6. linux服务器中Jenkins集成git、Gradle持续构建Springboot项目

    Jenkins是用java编写的开源持续集成工具,目前被国内外各公司广泛使用.本章教大家如何在linux服务器中使用Jenkins自动发布一个可作为linux服务发布的Springboot项目. 自动 ...

  7. 过滤access日志前5条数据

    cat /usr/local/nginx/logs/access.log|awk '{print $1}'|sort|uniq -c|sort -n -r|head -5 找不到的话可以find查找a ...

  8. 递归算法结合数据库 解析 java树形结构

    1.准备表结构及对应的表数据a.表结构: create table TB_TREE ( CID NUMBER not null, CNAME VARCHAR2(50), PID NUMBER //父节 ...

  9. Mono vs IL2CPP

    [Mono vs IL2CPP]             参考:http://blog.csdn.net/gz_huangzl/article/details/52486255

  10. Linux系统缓冲区溢出

    Linux系统下穿越火线-缓冲区溢出 原理:crossfire 1.9.0 版本接受入站 socket 连接时存在缓冲区溢出漏洞. 工具: 调试工具:edb: ###python在漏洞溢出方面的渗透测 ...