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 条评论
登录 后参与评论

相关文章

来自专栏小鹏的专栏

在mac上安装Xgboost Python库

最近在mac上用到xgboost库,安装时遇到颇多大坑,网上查了很多答案几乎都是win上的问题,没遇到理想的,自己也就摸着石头把几个大坑给填了,总结一下,给后...

21610
来自专栏跟着阿笨一起玩NET

【C#】工具类-FTP操作封装类FTPHelper

转载:http://blog.csdn.net/gdjlc/article/details/11968477

731
来自专栏乐沙弥的世界

Oracle 密码文件

DBA用户:具有sysdba,sysoper权限的用户被称为dba用户。默认情况下sysdba角色中存在sys用户,sysoper角色中存在system用户

1054
来自专栏FreeBuf

绕过SQL Server的登录触发器限制

在做渗透测试任务时,我们常常会碰到一些直连SQL Server数据库的桌面应用。但偶尔也会碰到一些后端为SQL Server的应用,并且其只允许来自预定义的主机...

651
来自专栏王磊的博客

带你玩转七牛云存储——高级篇

2103
来自专栏前端大白专栏

React-Native(Print: Entry, ":CFBundleIdentifier", Does Not Exist)

3046
来自专栏琦小虾的Binary

CMake学习笔记(三)——以笔者的Robosub竞赛为例

CMake学习笔记(三)——以笔者的Robosub竞赛为例 继笔者认真学习了CMake语法之后,便开始尝试自己用CMake将以前用Qt写的软件框架程序改编为CM...

26110
来自专栏开源优测

AutoLine源码分析之配置管理

AutoLine开源平台是一个开源自动化测试解决方案,基于RobotFramework进行二次开发,支持RobotFramework几乎所有的库。

983
来自专栏GuZhenYin

Entity Framework Core 之数据库迁移

前言 最近打算用.NET Core写一份开源的简易CMS系统,来练练手 所以又去深入研究了一下Entity Framework Core  发现其实有些细节园子...

3635
来自专栏散尽浮华

定时备份脚本分享(网站数据和数据库数据)

备份是我们运维人员最基本的日常工作,做好备份是稳定运维的一个重要环节。下面分享两个使用过的简单备份脚本: 1)网站数据备份 将网站数据/var/www/vhos...

3368

扫码关注云+社区