日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

SQLAlchemy()分页器paginate方法

發布時間:2023/12/20 数据库 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SQLAlchemy()分页器paginate方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Flask的數據分頁示例

?

用法:

1,首先寫數據獲取的視圖函數,就像這樣:

# 首頁 @blog_bp.route('/', endpoint='index') def index():#獲取頁數page = request.args.get('page',1)paginate = Article.query.paginate(page=int(page),per_page=3)# articles = Article.query.all()# uname = request.cookies.get('uname')# print(uname)uname = session.get('uname')return render_template('index.html', paginate=paginate, uname=uname)

?

從請求的查詢字符串(request.args)中獲取,如果沒有明確指定,則默認渲染第一頁。page從get請求拿到的是字符串類型參數?type=int?保證參數無法轉換成整數時,返回默認值。

為了顯示某頁中的記錄,要把?all()?換成?Flask-SQLAlchemy?提供的?paginate()?方法。頁?數是?paginate()?方法的第一個參數,也是唯一必需的參數。可選參數?per_page?用來指定?每頁顯示的記錄數量;如果沒有指定,則默認顯示?20?個記錄。另一個可選參數為?error_?out,當其設為?True?時(默認值),如果請求的頁數超出了范圍,則會返回?404?錯誤;如果?設為?False,頁數超出范圍時會返回一個空列表。

2,顯示分頁器:

paginate()?方法的返回值是一個?Pagination?類對象,這個類在?Flask-SQLAlchemy?中定義。?這個對象包含很多屬性,用于在模板中生成分頁鏈接,因此將其作為參數傳入了模板。分頁對象的屬性簡介如表所示。

? ? #paginate 屬性:
? ? # print(paginate.pages) #總共能生成多少頁
? ? # print(paginate.page) #當前頁碼數
? ? # print(paginate.has_next) #True
? ? # print(paginate.has_prev) #Flase
? ? # print(paginate.next_num) #獲取下一頁的頁碼數
? ? # print(paginate.prev_num) #獲取上一頁的頁碼數
? ? # print(paginate.items) #獲當前頁的對象 列表

對象方法:

接下來以?Jinja2?宏的形式實現的分頁導航,

分頁模板運用的bootstrap的分頁視圖(index.html):

<nav aria-label="Page navigation"><ul class="pagination"><li {% if not paginate.has_prev %} class="disabled"{% endif %}><a href="{{url_for('blog.index')}}?page={{paginate.prev_num}}" aria-label="Previous"><span aria-hidden="true">&laquo;</span></a></li>{% for num in range(1,paginate.pages+1) %}<li {% if num == paginate.page %} class="active"{% endif %}><a href="{{url_for('blog.index')}}?page={{num}}">{{num}}</a></li>{% endfor %}<li {% if not paginate.has_next %} class="disabled"{% endif %}><a href="{{url_for('blog.index')}}?page={{paginate.next_num}}" aria-label="Next"><span aria-hidden="true">&raquo;</span></a></li></ul></nav>

效果:

總結

以上是生活随笔為你收集整理的SQLAlchemy()分页器paginate方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。