django分页的东西, 不详细, 但是也足够了。
视图函数中的代码
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分页的东西, 不详细, 但是也足够了。的更多相关文章
- django 分页组件
一.仿django分页功能自己实现 urls.py 1 2 3 4 5 6 7 8 9 from django.conf.urls import url from django.contrib i ...
- django 分页(2) 使用类 页码显示
django 分页显示页码 views.py 显示11页码 ) < 起始位置 - 10总页数 else 总页数 > IF 当前页 小于 起始位置 结束页 IF 当前页 大于 IF 如果结束 ...
- Django 分页功能
Django 分页功能比较强大,这边是结合官网的内容写的可以参考 https://docs.djangoproject.com/en/1.9/topics/pagination/ 分页命令行练习案列 ...
- 原生的 django 分页
原始的 django 分页 # 基本 写法 class Paginator(object): def __init__(self, object_list, per_page, orphans=0, ...
- Django分页(二)
Django分页(二) 要求 .设定每页显示数据条数 # # .用户输入页码(第一页.第二页...) # # .设定显示多少页号 # # .获取当前数据总条数 # # .根据设定显示多少页号和数据总条 ...
- Django分页(一)
Django分页(一) 手动实现简单分页 HTML <!DOCTYPE html> <html lang="en"> <head> <me ...
- django 分页出现 UnorderedObjectListWarning 错误
django 分页出现此错误: UnorderedObjectListWarning: Pagination may yield inconsistent results with an unorde ...
- 2019.03.20 mvt,Django分页
MVT模式 MVT各部分的功能: M全拼为Model,与MVC中的M功能相同,负责和数据库交互,进行数据处理. V全拼为View,与MVC中的C功能相同,接收请求,进行业务处理,返 ...
- Django分页类的封装
Django分页类的封装 Django ORM 封装 之前有提到(Django分页的实现)会多次用到分页,将分页功能封装起来能极大提高效率. 其实不是很难,就是将之前实现的代码全都放到类中,将需要用 ...
随机推荐
- java基础总结001
1 sdf.parse()和sdf.format()它们两者的用法 http://www.imooc.com/wenda/detail/324671 3 Java String.s ...
- ADO数据库操作方式
微软公司的ADO (ActiveX Data Objects) 是一个用于存取数据源的COM组件.它提供了编程语言和统一数据访问方式OLE DB的一个中间层.允许开发人员编写访问数据的代码而不用关心数 ...
- 趣味编程:静夜思(Swift版)
func verticalWriting(txt:String, offset:Int) { Dictionary(grouping: txt.enumerated(), by: {$0.0 % of ...
- Linux性能测试分析命令_vmstat
vmstat命令主要是对操作系统的虚拟内存.进程.IO读写.CPU活动等整体情况进行统计.但是它不能对某个进程进行深入分析. vmstat基本语法 命令使用格式:vmstat [options] [d ...
- 4.Java的流程控制.md
目录 1. break语句 2.continue 3.foreach语句 4.可变参数: 1. break语句 Java的break语句,正常情况下,break和c++一样,但是Java可以设置一个标 ...
- Oracle Oracle数据库 迁移到 SQL Server上
原地址:https://blog.csdn.net/LongtengGensSupreme/article/details/81355181
- js判断json对象中是否含有某个属性
obj.hasOwnProperty("key"); 原地址:https://blog.csdn.net/feicongcong/article/details/53463872
- 内核 platform_get_resource() 函数解析
struct resource *platform_get_resource(struct platform_device *dev, unsigned int type, un ...
- cakephp 利用Pushapi扩展 进行app 消息推送
public function push_designer_app($params) { $this->layout = false; $this->autoRender = false; ...
- Web App Manifest
[Web App Manifest] The web app manifest provides information about an application (such as name, aut ...