zoukankan      html  css  js  c++  java
  • Flask用paginate实现数据分页

    flask中用paginate可实现数据分页效果,首先梳理一下paginate的知识点。

    1.paginate的用法

    paginate(page, per_page, error_out=True)
    >>>page 当前页数
    >>>per_page 每页显示的条数
    >>>error_out 是否打印错误信息

    2.paginate的属性

    a)paginate.page 当前页数
    b)paginate.pages 总页数
    c)paginate.total 数据总条数
    d)paginate.has_prev 是否存在上一页

    返回布尔值

    e)paginate.has_next 是否存在下一页

    返回布尔值

    f)paginate.iter_pages() 所有页码

    返回列表 如[1, 2, 3, 4]

    g)paginate(page, per_page,error_out).items

    返回当前页的所有数据


    实例

    a)视图
    @user.route('/manage', methods=['GET', 'POST'])
    def manage():
        ...
        page = int(request.args.get('page', 1))
        paginate = User.query.join(UserDetail, User.user_id == UserDetail.user_id).filter(
                User.username.like("%{}%".format(username)) if username is not None else '',
                User.user_type == user_type).paginate(page, PER_PAGE, False)
        if paginate.items:
            return render_template('memberManage.html', data=paginate.items, paginate=paginate)
        else:
            return render_template('empty.html', post_type=type_name)    
    

      

    b)html页面解析数据
    ...                   <div class="inline-block vertical-middle m-right-xs">
                            Page {{ paginate.page }} of {{ paginate.pages }} </div>
                        <ul class="pagination vertical-middle ajax_fPage">
    
    
                            {% if paginate.has_prev %}
                                <li class="" data-toggle="tooltip" title="首页"><a
                                        href="{{ url_for('user.manage') }}?page=1">
                                    <i class="fa fa-step-backward"></i>
                                </a>
                                </li>
                                <li class="" data-toggle="tooltip" title="上一页">
                                    <a href="{{ url_for('user.manage') }}?page={{ paginate.prev_num }}">
                                        <i class="fa fa-caret-left large"></i>
                                    </a>
                                </li>
                            {% else %}
                                <li class="disabled" data-toggle="tooltip" title="首页">
                                    <a href="#">
                                        <i class="fa fa-step-backward"></i>
                                    </a>
                                </li>
                                <li class="disabled" data-toggle="tooltip" title="上一页">
                                    <a href="#">
                                        <i class="fa fa-caret-left large"></i>
                                    </a>
                                </li>
                            {% endif %}
    
                            {% if paginate.has_next %}
                                <li data-toggle="tooltip" title="下一页">
                                    <a href="{{ url_for('user.manage') }}?page={{ paginate.next_num }}">
                                        <i class="fa fa-caret-right large"></i></a></li>
                                <li data-toggle="tooltip" title="尾页">
                                    <a href="{{ url_for('user.manage') }}?page={{ paginate.pages }}">
                                        <i class="fa fa-step-forward"></i>
                                    </a>
                                </li>
                            {% else %}
                                <li class="disabled" data-toggle="tooltip" title="下一页">
                                    <a href="#">
                                        <i class="fa fa-caret-right large"></i>
                                    </a>
                                </li>
                                <li class="disabled" data-toggle="tooltip" title="尾页">
                                    <a href="#"><i class="fa fa-step-forward"></i></a>
                                </li>
    
                            {% endif %}
    ...
    

     大功告成

    参考:https://www.jianshu.com/p/a68d4e6a20d1

  • 相关阅读:
    spring事务注解@Transactional注解失效场景
    Dubbo中服务消费者和服务提供者之间的请求和响应过程
    说说Java的Unsafe类
    java程序二叉树的深度优先和广度优先遍历
    重复注解与类型注解
    git pull 和 git fetch的区别?
    Java8新特性系列(Interface)
    二十种健康食品排行榜
    赞美的时机
    越过胆怯这道栅栏
  • 原文地址:https://www.cnblogs.com/yangshixiong/p/11644413.html
Copyright © 2011-2022 走看看