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>


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM