zoukankan      html  css  js  c++  java
  • flask中的分页器

    paginate():  分页查询,返回一个分页对象

    paginate(参数1, 参数2, 参数3) :

      参数1:当前是第几页(page)

      参数2:每页显示几条信息(per_page)

      参数3:error_out:error_out= False 的情况下不会抛出异常

          如果error_out = True 则下面几种情况会抛出404异常:找不到项目,并且page不是 page小于1,或者per_page为负数 page或per_page不是整数 page大于总页数;

    @app.route('/booklist/', methods=['GET', 'POST'])
    def book_list():
    page = int(request.args.get('page', 1)) # 当前页数,request.args.get()方法获取页面的参数,如果没有获取到页码就默认为1
    per_page = 3 # 每页数量
    paginate = Book.query.paginate(page, per_page, error_out=False) # 创建分页器对象
    return render_template('book_list_paginate.html', paginate= paginate)

    属性:
    items : 表示获得的查询结果
    pages : 表示一共有多少页
    page :获得当前页码数
    total :数据总条数
    has_prev: 是否有上一页
    has_next: 是否有下一页
    prev_num:上一页页码
    next_num:下一页页码
    iter_page():当前页的页码列表


    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>books</title>
    </head>
    <body>
    <h2>书籍信息</h2>
    {% for b in paginate.items %}
    编号:{{ b.id }}
    书名:{{ b.name }}
    <br>
    {% endfor %}
    总页数:{{ paginate.pages }}
    数据总条数:{{ paginate.total }}
    当前页数:{{ paginate.page }}
    <a href="/booklist/?page=1">首页</a>
    {% if paginate.has_prev %}
    <a href="/booklist/?page={{ paginate.prev_num }}">上一页</a>
    {% endif %}
    {% if paginate.has_next %}
    <a href="/booklist/?page={{ paginate.next_num }}">下一页</a>
    {% endif %}
    <a href="/booklist/?page={{paginate.pages}}">尾页</a>
    页码:
    {% for i in paginate.iter_pages() %}
    <a href="/booklist/?page={{ i }}">{{ i }}</a>
    {% endfor %}
    </body>
    </html>


  • 相关阅读:
    Android 开发转型前端准备知识
    atom写文档技巧
    gerrit升级到16.04之后连接不到服务器
    adb shell am pm
    ArrayList和LinkedList的区别
    Android源码编译
    Android动态加载代码技术
    File 与 FileStream 文件运用
    物体在一定范围自有碰撞
    扫描二维码加载网页图片
  • 原文地址:https://www.cnblogs.com/Jokerguigui/p/11531968.html
Copyright © 2011-2022 走看看