• Flask中实现分页


    准备工作

    先建一个表,往表里面插入一些数据

    起步

    后端代码:

    @blue.route('/fenye')
    def fenye():
    page = int(request.args.get('page',1))
    per_page = int(request.args.get('per_page',5))
    paginator = Country.query.paginate(page,per_page,error_out=False)
    return render_template('fenye.html',data=paginator)

    前端代码:

    {% extends 'bootstrap/base.html' %}

    {% block body %}
    <ul>
    {% for i in data.items %}
    <li>国家名为{{ i.name }}</li>
    {% endfor %}
    </ul>

    <nav aria-label="Page navigation">
    <ul class="pagination">
    {% if data.has_prev %}
    <li>
    <a href="{{ url_for('wusir.fenye') }}?page={{ data.prev_num }}" aria-label="Previous">
    <span aria-hidden="true">上一页</span>
    </a>
    </li>
    {% else %}
    <li>
    <a href="{{ url_for('wusir.fenye') }}?page=1" aria-label="Previous">
    <span aria-hidden="true">上一页</span>
    </a>
    </li>
    {% endif %}

    {% for i in data.iter_pages() %}
    <li><a href="{{ url_for('wusir.fenye') }}?page={{ i }}">{{ i }}</a></li>
    {% endfor %}

    <li>
    {% if data.has_next %}
    <a href="{{ url_for('wusir.fenye') }}?page={{ data.next_num }}"
    aria-label="Next">
    <span aria-hidden="true">下一页</span>
    </a>
    {% else %}
    <a href="{{ url_for('wusir.fenye') }}?page={{ data.pages }}"
    aria-label="Next">
    <span aria-hidden="true">下一页</span>
    </a>
    {% endif %}
    </li>
    </ul>
    </nav>

    {% endblock %}

    分页器对象常用属性和方法

    • items 当前页面中的所有记录(比如当前页上有5条记录,items就是以列表形式组织这5个记录)
    • page 当前页码(比如当前页是第5页,返回5)
    • pages 总页码
    • prev_num 上一页页码
    • next_num 下一页页码
    • has_next 是否有下一页 True/False
    • has_prev 是否有上一页 True/False
    • iter_pages 用来获得分页页码列表。
    Fake it,till you make it
  • 相关阅读:
    Minio对象存储
    白话解说TCP/IP协议三次握手和四次挥手
    企业环境下MySQL5.5调优
    Mac下iTerm2配置lrzsz功能
    七牛云图床和Markdown使用
    SSIS: 把存储在数据库中的图片导出来
    关闭Outlook的时候使之最小化
    【转】CTE(公用表表达式)
    通过SSIS监控远程服务器磁盘空间并发送邮件报警
    在Windows Server 2008 R2 中架设 SMTP 服务器
  • 原文地址:https://www.cnblogs.com/wusir66/p/9989620.html
Copyright © 2020-2023  润新知