django-pure-pagination实现分页
django-pure-paginations是一个第三方的分页插件
安装 django-pure-pagination
pip install django-pure-pagination
在settings里的INSTALLED_APPS下新增如下
INSTALLED_APPS = [
'pure_pagination',
]
在views中使用
#引入
from pure_pagination import Paginator, EmptyPage, PageNotAnInteger
class UserHistoryView(LoginRequiredMixin,ListView):
'''登录日志'''
queryset = UserLog.objects.all().order_by('-login_time')
template_name = 'users/user_history.html'
# context_object_name = 'user_history'
def get_context_data(self, **kwargs):
#分页开始
try:
page = self.request.GET.get('page', 1)
except PageNotAnInteger:
page = 1
# 这里指从all中取10个出来,每页显示10个
p = Paginator(self.queryset, 10, request=self.request)
page_list = p.page(page)
print(page_list)
context = {
"platform_active": "active",
"user_log_active": "active",
#返回给模板
"page_list":page_list,
}
kwargs.update(context)
return super(UserHistoryView, self).get_context_data(**kwargs)
模板中使用
<div class="table-responsive">
<form id="del_form_asset_all" class="form-horizontal ">
<table class="table table-striped table-bordered table-hover dataTables-example">
<thead>
<tr>
<th>ID</th>
<th>用户</th>
<th>客户端</th>
<th>来源IP</th>
<th>城市</th>
<th>登录时间</th>
</tr>
</thead>
<tbody>
{% for user_history in page_list.object_list %}
<tr class="gradeA">
<td>{{ user_history.id }}</td>
<td>{{ user_history.username }}</td>
<td>{{ user_history.user_agent }}</td>
<td>{{ user_history.ip }}</td>
<td>{{ user_history.city }}</td>
<td>{{ user_history.login_time }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</form>
#分页开始
<div>
<ul class="pagination pull-right">
{% if page_list.has_previous %}
<li class="long"><a
href="?{{ page_list.previous_page_number.querystring }}">上一页</a>
</li>
{% endif %}
{% for page in page_list.pages %}
{% if page %}
{% ifequal page page_list.number %}
<li class="active"><a href="?{{ page.querystring }}">{{ page }}</a>
</li>
{% else %}
<li><a href="?{{ page.querystring }}">{{ page }}</a>
{% endifequal %}
{% else %}
<li class="none"><a href="">...</a></li>
{% endif %}
{% endfor %}
{% if page_list.has_next %}
<li class="long"><a
href="?{{ page_list.next_page_number.querystring }}">下一页</a></li>
{% endif %}
</ul>
</div>
</div>
分页效果

django-pure-pagination实现分页的更多相关文章
- Django 利用 Pagination 简单分页
Django自身提供了一些类来实现管理分页,数据被分在不同的页面中,并带有“上一页/下一页”标签.这个类叫做Pagination,其定义位于 django/core/paginator.py 中. 一 ...
- python 学习笔记十八 django深入学习三 分页,自定义标签,权限机制
django Pagination(分页) django 自带的分页功能非常强大,我们来看一个简单的练习示例: #导入Paginator>>> from django.core.p ...
- Django的rest_framework的分页组件源码分析
前言: 分页大家应该都很清楚,今天我来给大家做一下Django的rest_framework的分页组件的分析:我的讲解的思路是这样的,分别使用APIview的视图类和基于ModelViewSet的视图 ...
- python 全栈开发,Day87(ajax登录示例,CSRF跨站请求伪造,Django的中间件,自定义分页)
一.ajax登录示例 新建项目login_ajax 修改urls.py,增加路径 from app01 import views urlpatterns = [ path('admin/', admi ...
- Django拾遗--pagination、sitemap、admin、form
Django拾遗--pagination.sitemap.admin.form pagination 其实这个分页模块的原理就是根据设定的每页条数来分割queryset.查询结果/每页子项数目=页数 ...
- Django Rest framework 之 分页
RESTful 规范 django rest framework 之 认证(一) django rest framework 之 权限(二) django rest framework 之 节流(三) ...
- 第三百七十节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)用Django实现搜索结果分页
第三百七十节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)用Django实现搜索结果分页 逻辑处理函数 计算搜索耗时 在开始搜索前:start_time ...
- django高级应用(分页功能)
django高级应用(分页功能) 1.原生分页应用 前端html代码 <!DOCTYPE html> <html lang="en"> <head&g ...
- Django-restframework25 Pagination(分页)
Django-restframework25 Pagination(分页) 2017年11月11日 15:14:36 敲代码的伪文青 阅读数:1021 标签: restful 更多 个人分类: res ...
- django上课笔记2-视图CBV-ORM补充-Django的自带分页-Django的自定义分页
一.视图CBV 1.urls url(r'^login.html$', views.Login.as_view()), 2.views from django.views import View cl ...
随机推荐
- JS全局对象的属性
全局对象是最顶层的对象,在浏览器环境指的是window对象.在ES5中,全局对象的属性与全局变量是等价的. var str = "hello"; function test(){ ...
- C++11 constexpr常量表达式
常量表达式函数 要求: 函数体内只有单一的return返回语句 例如: constexpr int data() { const int i=1; //含有除了return以外的语句 return i ...
- python调用webservice接口
使用suds这个第三方模块 from suds.client import Clienturl = 'http://ip:port/?wsdl'cilent=Client(url)print cile ...
- layui超链接追加tab选项卡必须手动刷新才出现问题
在admin.js中tabAdd方法里 var li = $("#WeTabTip li[lay-id=" + id + "]").length;中的id外面加 ...
- 写一份简单的webpack2 的配置文件,无比简单
这是一份自己用到的webpack2的配置写法,从看webpack2开始,发现自己越来越懒了,现在html文件都不想自己写了,直接自己生成... 哈哈,这次是可以无比完美的导入css啦 开发的时候在命令 ...
- PHP开发——进制转换
常用进制 l 10进制:有10个基本数,分别为0.1.2.3.4.5.6.7.8.9,运算规则”逢10进1”: l 8进制:有8个基本数,分别为0.1.2.3.4.5.6.7,运算规则”逢8进1” ...
- C++中重载操作符[ ]
1.首先说说为什么要重载操作符[ ] 主要是因为系统只给了整数类型(int)的重载函数,即只能在方括号中输入整数进行查找,但有时候我们可能存放数据时,下标的类型是自定义的,希望也能像数组直接通过下标访 ...
- 杨其菊201771010134《面向对象程序设计(java)》第一周学习总结
第一部分:课程准备部分 填写课程学习 平台注册账号, 平台名称 注册账号 博客园:www.cnblogs.com 安迪儿 程序设计评测:https://pintia.cn/ 迷路的麋鹿回不来家了 代码 ...
- windows远程桌面连接时,显示发生身份验证错误,给函数提供的身份无效
摘自:https://www.landui.com/help/show-7787 初次看到这个错误的时候懵了.访问给的地址一看,发现大概意思是不安全了,微软要更新一下 凭据安全支持提供程序协议 (Cr ...
- Object.defineProperty之observe实现
对数据对象的属性批量劫持设置: <script type="text/javascript"> function observe(data){ if(!data || ...