码迷,mamicode.com
首页 > 其他好文 > 详细

flask 分页数据显示

时间:2019-07-07 20:20:20      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:rev   显示   直接   request   pre   ext   error   rgs   temp   

填充一些数据在表中

技术图片

@blue.route(/pages/)
def pages():
  # 默认进入这个视图函数 第一页并只显示5条数据   
    page = request.args.get(page,1,type=int)
    per_page = request.args.get(per_page,5,type=int)

    # 返回列表 如[1, 2, 3, 4]
    pagination = Pron.query.order_by(Pron.p_id.desc()).paginate(page,per_page)  # Pron.p_id.desc() 或者 -Pron.p_id 是倒序排列

    # 返回当前页的所有数据
    persons = pagination.items
  
return render_template(per.html,pagination=pagination,persons=persons)

 

# per.html

    {% for person in persons %}
        id:{{ person.p_id }}<br>
        字段:{{ person.p_str }}<br>
        随机号码:{{ person.p_int }}<br><br>
    {% endfor %}

    <hr>
    <!--------------第一页--------------------->
    <a href="{{ url_for(‘base.pages‘) }}">第一页</a>
    
  # 通过
has_prev 判断是否能上一页,不能则 url 为 #

    {% if pagination.has_prev %}
        <a href="{{ url_for(‘base.pages‘) }}?page={{ pagination.prev_num }}">上一页</a>
    {% else %}
        <a href="#">上一页</a>
    {% endif %}

    <!--------------页码列表--------------------->
    {% for page in pagination.iter_pages() %}
        {% if page %}
            <!--------------当列表中的页码不等于 当前的页数 生成其他页码数(url)--------------------->
            {% if page != pagination.page %}
                <a href="{{ url_for(‘base.pages‘) }}?page={{ page }}">{{ page }}</a>
            {% else %}
                <a href="#">{{ page }}</a>
            {% endif %}
        {% endif %}
    {% endfor %}
  
  
  # 通过 has_next 判断是否能上一页,不能则 url 为 #
    {% if pagination.has_next %}
        <a href="{{ url_for(‘base.pages‘) }}?page={{ pagination.next_num }}">下一页</a>
    {% else %}
        <a href="#">上一页</a>
    {% endif %}

    <!--------------最后一页--------------------->
    <a href="{{ url_for(‘base.pages‘) }}?page={{ pagination.pages }}">最后一页</a>



    <hr>

        当前页面  {{ pagination.page }}
        总页数   {{ pagination.pages }}
        总数据   {{ pagination.total }}

显示

技术图片

 

 

 




其中一些方法的知识点

paginate.page 当前页数
paginate.pages 总页数
paginate.total 数据总条数
paginate.has_prev 是否存在上一页 是则返回trun
paginate.iter_pages() 所有页码    返回列表 如[1, 2, 3, 4]  可在html模板中迭代得到页码数
paginate(page, per_page,error_out).items  返回当前页的所有数据  在html中循环迭代得到其中数据 如下
{% for person in paginate.items %}
        id:{{ person.p_id }}<br>
        字段:{{ person.p_str }}<br>
        随机号码:{{ person.p_int }}<br><br>
    {% endfor %}

 

 



简化视图函数和html模板

@blue.route(/pages/)
def pages():

    page = request.args.get(page,1,type=int)
    per_page = request.args.get(per_page,5,type=int)

    # 返回列表 如[1, 2, 3, 4]
    pagination = Pron.query.order_by(Pron.p_id.desc()).paginate(page,per_page)  # Pron.p_id.desc() 或者 -Pron.p_id 是倒序排列

    # 返回当前页的所有数据
    persons = pagination.items    # 不需要直接使用paginate在html模板中items循环
    # return render_template(‘per.html‘,pagination=pagination,persons=persons)
    
    # 简化 在html页面中paginate.items 可以for循环迭代的到实例汇总的数据
    return render_template(per.html, pagination=pagination)
{% for person in pagination.items %}
        id:{{ person.p_id }}<br>
        字段:{{ person.p_str }}<br>
        随机号码:{{ person.p_int }}<br><br>
    {% endfor %}

 

flask 分页数据显示

标签:rev   显示   直接   request   pre   ext   error   rgs   temp   

原文地址:https://www.cnblogs.com/zengxm/p/11147465.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!