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>

分页效果

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大数据架构师专家

nginx日志分析

nginx没有命令直接将日志按天分割,我们写了一个shell脚本,每日0点定时执行。

1393
来自专栏有趣的django

21天打造分布式爬虫-Scrapy框架(七)

pip install Twisted-18.7.0-cp36-cp36m-win_amd64.whl

781
来自专栏编程坑太多

python3爬电影天堂

1427
来自专栏编程坑太多

Python模拟登陆csdn-隐藏字段

1475
来自专栏更流畅、简洁的软件开发方式

多种数据库的情况

1、 DAL并不是放在一个DLL里面,而是分别放在各个的DLL里面,需要哪个数据库就使用哪个DLL文件。 2、 DAL里面的命名空间、类名、参数类型都是一样的,...

2287
来自专栏编程坑太多

python爬虫抓取内涵段子

923
来自专栏python爬虫日记

python2.7下urllib2的connection自动close的原因及解决办法

前文介绍了urllib2的常见问题的解决方案,今天来特别讨论下urllib2中短连接问题。

964
来自专栏一个会写诗的程序员的博客

《Springboot极简教程》问题解决:Idea解决Gradle库依赖冲突问题:Detected both log4j-over-slf4j.jar AND slf4j-log4j12.jar on

参考: https://docs.gradle.org/current/userguide/userguide_single.html#sec:listing...

693
来自专栏扎心了老铁

Mybatis分页插件PageHelper的配置和使用方法

前言 在web开发过程中涉及到表格时,例如dataTable,就会产生分页的需求,通常我们将分页方式分为两种:前端分页和后端分页。 前端分页 一次性请求数据表格...

6374
来自专栏刘望舒

Android系统服务(一)解析ActivityManagerService(AMS)

相关文章 Android系统启动流程系列 Android应用进程系列 Android深入四大组件系列 前言 1.概述 AMS是系统的引导服务,应用进程的启动、...

2266

扫码关注云+社区