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>

效果:

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/456334.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/456334.shtml
英文地址,請注明出處:http://en.pswp.cn/news/456334.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

開源中國 2014 年源創會年度計劃

時光總是從敲代碼的指尖不經意地滑過&#xff0c;轉眼2014年已快過去一半&#xff0c;OSC依然心懷著最初的夢想。 源創會&#xff0c;oscer的線下快樂大本營&#xff0c;我們仍在繼續...... 聆聽技術大牛講解最前沿的技術&#xff0c;和同道中人切磋IT秘籍&#xff0c;吃點心侃…

互聯網金融行業申請評分卡(A卡)簡介

文章目錄前言基本概念1、信用違約風險的基本概念什么是信用違約風險&#xff1a;組成部分違約的主體個貸中常用的違約定義M0&#xff0c;M1&#xff0c;M2的定義2、申請評分卡的重要性和特性信貸場景中的評分卡申請評分卡的概念為什么要開發申請評分卡評分卡的特性 &#xff08…

Flask的csrf_token的用法

在flask當中&#xff0c;flask-wtf模塊時攜帶csrf校驗的&#xff0c;只是需要開啟&#xff1b; 如果不開啟校驗就不需要校驗&#xff0c;但是那樣不安全。 Csrf是針對與post請求的跨域限制&#xff0c;get請求沒有作用 csrf_token的開啟 在flask中開啟csrf保護 from flask_…

dotty編譯器語法特性之一交叉類型,聯合類型和文本單例類型

2019獨角獸企業重金招聘Python工程師標準>>> ###翻譯&#xff1a;http://dotty.epfl.ch/docs/reference/intersection-types.html #交叉類型 trait Resettable {def reset(): this.type } trait Growable[T] {def add(x: T): this.type } def f(x: Resettable &…

【轉】Zookeeper 安裝和配置

轉自&#xff1a;http://coolxing.iteye.com/blog/1871009 Zookeeper的安裝和配置十分簡單, 既可以配置成單機模式, 也可以配置成集群模式. 下面將分別進行介紹. 單機模式 1. 配置 點擊這里下載zookeeper的安裝包之后, 解壓到合適目錄. 進入zookeeper目錄下的conf子目錄, 創建z…

一分鐘精通Flask-Bootstrap的使用

要想在程序中集成Bootstrap&#xff0c;顯然要對模板做所有必要的改動。不過&#xff0c;更簡單的方法是使用一個名為Flask-Bootstrap 的Flask 擴展&#xff0c;簡化集成的過程。 安裝&#xff1a; Flask-Bootstrap 使用pip安裝&#xff1a; pip install flask_bootstrap Fl…

linux生產環境下安裝anaconda總結

前言&#xff1a; 工作中&#xff0c;常常要在新的linux生產服務器中安裝自己的集成python環境&#xff0c;這種情況下有一點需要注意&#xff1a;不能覆蓋生產服務器中的python環境&#xff08;也就是自己的python環境要和系統的python環境分開&#xff09;。一般情況下系統自…

Delphi TScrollBar 用于滾動窗口、組件內容

滾動條組件&#xff08;TScrollBar&#xff09;此組件是一個Windows滾動條&#xff0c;用于滾動窗口、組件內容。許多控制有滾動條屬性&#xff0c;它們把滾動條作為自己的一部分&#xff0c;對于沒有完整滾動條的控制&#xff0c;TScrollBar組件提供了一個附加的功能&#xff…

FSF 稱 DRM 被用于鎖定、控制和監視用戶

自由軟件基金會正在督促美國政府廢除DMCA中保護DRM的反規避條款。DMCA的1201條款禁止繞過DRM保護的內容和設備。 自由軟件基金會的Donald Robertson在致函美國版權辦公室的信&#xff08;PDF&#xff09;中指出&#xff0c;技術保護措施和數字限制管理&#xff08;即DRM&#x…

改數據庫表結構類型兩種方法

alter table user change password password varchar(128) not null; alter table user modify column password varchar(128) not null;

申請評分卡(A卡)的開發過程(1)

前言&#xff1a; 本篇文章上接《申請評分卡簡介》&#xff0c;有需要的童鞋可以參考下&#xff1a;https://blog.csdn.net/qq_16633405/article/details/107744921 下面介紹下A卡的開發步驟。 開發過程 1、評分卡模型開發步驟&#xff1a; 1、立項&#xff1a;場景&#…

提升你的開發效率,10 個 NPM 使用技巧

對于一個項目&#xff0c;常用的一些npm簡單命令包含的功能有&#xff1a;初始化一個文件夾( npm init )&#xff0c;下載npm模塊( npm install )&#xff0c;創建測試( npm test ) 和自定義腳本( npm run )。但是&#xff0c;進一步了解一些 npm 的使用技巧可以徹底改變你的日…

E: 無法獲得鎖 /var/lib/dpkg/lock-frontend - open (11: 資源暫時不可用) E: 無法獲取 dpkg 前端鎖 (/var/lib/dpkg/lock-front

解決&#xff1a; E: 無法獲得鎖 /var/lib/dpkg/lock-frontend - open (11: 資源暫時不可用) E: 無法獲取 dpkg 前端鎖 (/var/lib/dpkg/lock-frontend)&#xff0c;是否有其他進程正占用它&#xff1f; 方法&#xff1a; 重新啟動虛擬機服務器 再在黑屏終端中重新嘗試輸入su…

聚類效果評估指標總結

前言 實際工作中經常會用到一些聚類算法對一些數據進行聚類處理&#xff0c;如何評估每次聚類效果的好壞&#xff1f;可選的方法有1、根據一些聚類效果的指標來評估&#xff1b;2、直接打點。今天就主要總結下這段時間了解的聚類效果評估指標。廢話少說&#xff0c;直接上干貨…

{%extends bootstrap/base.html%}的添加,使得其他block無法繼承

仙說{%extends "bootstrap/base.html"%}用法&#xff1a; 在base.html中調用一次即可&#xff0c;并且 {%extends "bootstrap/base.html"%} 要放在 最后頭&#xff01;&#xff01;最后頭&#xff01;最后頭&#xff01; base中不用再添加 {% block cont…

Vue.directive自定義指令

Vue除了內部指令&#xff0c;我們也可以定義一些屬于自己的指令&#xff0c;比如我們要定義一個v-diy的指令&#xff0c;作用就是讓文字變成紅色。 寫好了這個功能&#xff0c;我們現在就自己定義一個全局的指令。我們這里使用Vue.directive( ); html <div v-diy"color…

HTML5 SVG

SVG介紹1.什么是svgsvg指可伸縮矢量圖形&#xff08;Scalable Vector Graphics &#xff09;svg用來定義用于網絡的基于矢量圖形svg使用XML格式定義圖形svg圖像在放大或改變尺寸的情況下其圖形質量不會有損失svg是網為王聯盟的標準2.svg的優勢svg圖像可通過文本編輯器來創建和修…

運用Nginx代理和UWSGI將Flask項目部署在Linux中 詳細步驟

nginx: 安裝可以參照的路徑: http://nginx.org/en/linux_packages.html#Ubuntu 啟動Nginx nginx [ -c configpath] 默認配置目錄&#xff1a;/etc/nginx/nginx.conf 查看進程&#xff1a; ps -ef |grep nginx 控制Nginx nginx -s xxxstop 快速關閉quit …

機器學習算法之KNN

前言 KNN一般用于有監督的分類場景&#xff0c;除此之外&#xff0c;KNN在異常檢測場景中也有應用&#xff0c;下面主要介紹下KNN在這兩面的應用原理。 KNN做分類的原理 計算步驟如下&#xff1a; 1&#xff09;算距離&#xff1a;給定測試對象&#xff0c;計算它與訓練集中…

Supermap 組合單值專題圖與標簽專題圖演示樣例

效果圖例如以下&#xff1a;單值專題圖并顯示每一個區域的相關文字信息 代碼&#xff1a; <!DOCTYPE> <html> <head> <meta http-equiv"Content-Type" content"text/html; charsetutf-8" /> <title>單值專題圖</title>…