flask_分页展示模板及应用.md

分页展示

  • 分页查询

    方法:paginate,分页查询方法
    	参数:
    		page:当前页码
    		per_page:每页多少条数据
    		error_out:当查询有误时是否报错,默认为True
    	返回值:
    		Pagination:分页对象,其中包含了分页的所有信息
    Pagination:
    	属性:
    		page:当前页码
    		per_page:每页显示多少条,默认为20条
    		pages:总页数
    		total:总条数
    		prev_num:上一页的页码
    		next_num:下一页的页码
    		has_prev:是否有上一页
    		has_next:是否有下一页
    		items:当前页的数据
    	方法:
    		iter_pages:存放了所有的在分页导航条上显示的页码,显示不完时返回None
    		prev:上一页的分页对象
    		next:下一页的分页对象
    
  • 封装分页显示的宏

    {% macro show_pagination(pagination, endpoint) %}
        <nav aria-label="Page navigation">
            <ul class="pagination">
                {# 上一页 #}
                <li {% if not pagination.has_prev %}class="disabled"{% endif %}>
                    <a href="{% if pagination.has_prev %}{{ url_for(endpoint, page=pagination.prev_num, **kwargs) }}{% else %}#{% endif %}" aria-label="Previous">
                        <span aria-hidden="true">&laquo;</span>
                    </a>
                </li>
    
                {# 中间页码 #}
                {% for p in pagination.iter_pages() %}
                    {% if p %}
                        <li {% if pagination.page == p %}class="active"{% endif %}><a href="{{ url_for(endpoint, page=p, **kwargs) }}">{{ p }}</a></li>
                    {% else %}
                        <li><a href="#">&hellip;</a></li>
                    {% endif %}
                {% endfor %}
    
                {# 下一页 #}
                <li {% if not pagination.has_next %}class="disabled"{% endif %}>
                    <a href="{% if pagination.has_next %}{{ url_for(endpoint, page=pagination.next_num, **kwargs) }}{% else %}#{% endif %}" aria-label="Next">
                        <span aria-hidden="true">&raquo;</span>
                    </a>
                </li>
            </ul>
        </nav>
    {% endmacro %}
    
  • 使用:

    {% from 'common/macro.html' import show_pagination %}
    
    {{ show_pagination(pagination, 'main.index', uid=3) }}
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值