layui分頁laypage結合Flask+Jinja2實現流程

在這里插入圖片描述



  •   Layui2.0普通用法
    
<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>Demo</title><!-- 請勿在項目正式環境中引用該 layui.css 地址 --><link href="//unpkg.com/layui@2.9.0/dist/css/layui.css" rel="stylesheet">
</head>
<body>
<div id="demo-laypage-normal-1"></div>
<div id="demo-laypage-normal-2"></div><!-- 請勿在項目正式環境中引用該 layui.js 地址 -->
<script src="//unpkg.com/layui@2.9.0/dist/layui.js"></script>
<script>
layui.use(function(){var laypage = layui.laypage;// 普通用法laypage.render({elem: 'demo-laypage-normal-1',count: 50 // 數據總數});laypage.render({elem: 'demo-laypage-normal-2',count: 100 // 數據總數});
});
</script></body>
</html>


僅需要laypage.render就可以實現分頁UI+邏輯回調的實現,此時可以看到后面的屬性部分發現一個和重要的回調jump

在這里插入圖片描述

定義了這個回調后,可以發現點擊上一頁下一頁就能拿到你點擊最終當前頁以及每頁顯示的條書。每個后端去實現的邏輯大同小異,如果用flask的話,如果要用url_for去做的話,這個obj.curr無法傳進去,只能使用瀏覽器的方法進行路由跳轉。



Flask+Jinja2實現laypage步驟:



1.渲染頁碼


例如我的Flask路由是這樣定義的:


bp = Blueprint('blog', __name__, url_prefix='/blog', template_folder='templates', static_folder='static')@bp.route('/index/<int:page>')
def index(page=1):post_pg = Post.query.paginate(page=page, per_page=5)count = post_pg.totalreturn render_template('index.html', **locals())

那么我要訪問此路由的URL應該是這種格式: http://127.0.0.1:8000/blog/index/1
首先第一點就是,后端返回模板的值中得帶有 count,供laypage組件去進行具體頁數的邏輯渲染

    <script>layui.use(function () {let $ = layui.jquerylet laypage = layui.laypage;laypage.render({elem: 'demo-laypage-theme-1',count: '{{ count }}',theme: '#1E9FFF',limit: 5});});</script>

已知這幾點后,我們可以去jump回調那塊實現整體邏輯

JS中可以使用Flask返回給模板的count,組件根據返回的值進行賦值即可,效果如下
在這里插入圖片描述
其他語言頁面數據初始化的時候把count一起返回即可



2.定義回調


首先我的limit是定死的,你們可以根據自己需求做去進行修改。邏輯是點擊了分頁跳轉的任意事件,例如具體某一頁,上一頁下一頁等,都會觸發jump方法,此時僅需要利用window.location.href配合obj.curr就能跳轉到具體的某一頁

<script>layui.use(function () {let $ = layui.jquerylet laypage = layui.laypage;laypage.render({elem: 'demo-laypage-theme-1',curr: '{{ page }}',count: '{{ count }}',theme: '#1E9FFF',limit: 5,jump: (obj, first) => {// 首次不執行if (!first) {window.location.href = `/blog/index/${obj.curr}`console.log(obj.curr)console.log(obj.limit)}}});});
</script>

此時點擊事件觸發后,可以發現URL進行了跳轉

在這里插入圖片描述

但是此時可以發現一個問題,URL雖然是變了,頁面數據也拿到了,但是分頁欄的當前頁沒有進行同步,此時去看文檔可以發現一個關鍵參數 curr

在這里插入圖片描述

如果你也是Flask+Jinja2的話你就可以和和我一樣,繼續使用插值渲染Flask提供的值,因為我的index路由是有一個page參數的,每次訪問那個路由page就是我要獲取的具體頁,拿到具體頁后渲染頁面后,也需要同步進行分頁組件的當前頁更新,你只需要進行curr 的定義即可

<script>layui.use(function () {let $ = layui.jquerylet laypage = layui.laypage;laypage.render({elem: 'demo-laypage-theme-1',curr: '{{ page }}',count: '{{ count }}',theme: '#1E9FFF',limit: 5,jump: (obj, first) => {// 首次不執行if (!first) {window.location.href = `/blog/index/${obj.curr}`console.log(obj.curr)console.log(obj.limit)}}});});</script>

最終效果:
在這里插入圖片描述

PS:實現思路大致差不多,Layui提供的僅是部分回調介紹,以及他能用的屬性以及方法,對照著租用自己去組裝就好,覺得有用能實現的點個贊,有問題留言😉

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

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

相關文章

uniapp iOS離線打包——運行項目到模擬器報錯?

運行項目、打包時報錯問題 記錄個人在開發過程中遇到的相關問題&#xff0c;后續有時間會不定時更新 文章目錄 運行項目、打包時報錯問題運行到模擬器報錯解決方案 打包報錯解決方案 運行到模擬器報錯 解決方案 選中項目工程 —> Build Settings 滑動底部 —> User-Defi…

Java基礎課的中下基礎課04

目錄 二十三、集合相關 23.1 集合 &#xff08;1&#xff09;集合的分支 23.2 List有序可重復集合 &#xff08;1&#xff09;ArrayList類 &#xff08;2&#xff09;泛型 &#xff08;3&#xff09;ArrayList常用方法 &#xff08;4&#xff09;Vector類 &#xff08;…

gin博客項目開發日志1

gin項目博客系統偽第一代 項目概述 1.1 目標 實現一個功能完整、易用的博客系統&#xff0c;允許用戶發布、編輯和管理博客文章。 1.2 背景 看到網上有很多語言寫的博客系統&#xff0c;但go的卻很少&#xff0c;正好&#xff0c;現在我在學go&#xff0c;可以拿博客來練練…

組件之間傳值

目錄 1&#xff1a;組件中的關系 2&#xff1a;父向子傳值 3&#xff1a;子組件向父組件共享數據 4&#xff1a;兄弟組件數據共享 1&#xff1a;組件中的關系 在項目中使用到的組件關系最常用兩種是&#xff0c;父子關系&#xff0c;兄弟關系 例如A組件使用B組件或者C組件…

深入了解UDP協議:特點、應用場景及市面上常見軟件案例

目錄 引言 UDP的特點 UDP的應用場景 市面上使用UDP的軟件案例 結論 引言 在計算機網絡中&#xff0c;UDP&#xff08;User Datagram Protocol&#xff09;是一種面向無連接、無狀態的傳輸層協議。與TCP相比&#xff0c;UDP具有獨特的特點和適用場景。本文將深入探討UDP協…

解碼方法dp

1.狀態表示 2.狀態轉移方程 3.初始化 4.填表順序 從左往右 5.返回值 dp[n-1] 6.處理邊界問題以及初始化問題的技巧

Docker筆記:數據卷掛載的三種方式及物理機與容器內的環境變量的傳遞

容器數據掛載到物理機上的三種方式 1 &#xff09; 實名(指定路徑)掛載數據卷 docker run -v 物理機目錄:容器內目錄 鏡像id示例 docker run -it -d --name mynginx_p_v -p 82:80 -v /root/www:/usr/share/nginx/html nginx此時訪問 會報 403 forbidden因為 物理機上的 root/…

Electron[5] 渲染進程和主進程

1 進程 Electron里頭的進程分為渲染進程和主進程。簡單理解&#xff1a; main.js就是主進程每個頁面就是渲染進程一個Electron應用僅有一個主進程&#xff0c;可以有多個渲染進程 上面的這些概念很重要&#xff0c;不展開細講。 2 進程職責 主進程是用來實現應用的基礎功能…

【小沐學Python】Python實現TTS文本轉語音(speech、pyttsx3、百度AI)

文章目錄 1、簡介2、Windows語音2.1 簡介2.2 安裝2.3 代碼 3、pyttsx33.1 簡介3.2 安裝3.3 代碼 4、ggts4.1 簡介4.2 安裝4.3 代碼 5、SAPI6、SpeechLib7、百度AI8、百度飛槳結語 1、簡介 TTS(Text To Speech) 譯為從文本到語音&#xff0c;TTS是人工智能AI的一個模組&#xf…

K8S學習指南(6)-k8s核心概念label和label selector

文章目錄 前言Label是什么&#xff1f;示例 Label Selector是什么&#xff1f;示例 Label的使用場景Label Selector的類型Label和Label Selector的高級應用使用Label Selector選擇Service的后端Pod使用Label Selector進行滾動更新 總結 前言 Kubernetes是一個強大的容器編排平…

Python從入門到精通

一、Python基礎語法 1、字面量 掌握字面量的含義了解常見的字面量類型基于print語句完成各類字面量的輸出 什么是字面量&#xff1f; 字面量&#xff1a;在代碼中&#xff0c;被寫下來的的固定的值&#xff0c;稱之為字面量 常用的值類型 Python中常用的有6種值&#xff…

MyBatis 四大核心組件之 ResultSetHandler 源碼解析

&#x1f680; 作者主頁&#xff1a; 有來技術 &#x1f525; 開源項目&#xff1a; youlai-mall &#x1f343; vue3-element-admin &#x1f343; youlai-boot &#x1f33a; 倉庫主頁&#xff1a; Gitee &#x1f4ab; Github &#x1f4ab; GitCode &#x1f496; 歡迎點贊…

MyBatis動態SQL(Dynamic SQL)

Mybatis框架的動態SQL技術是一種根據特定條件動態拼裝SQL語句的功能&#xff0c;它存在的意義是為了解決拼接SQL語句字符串時的痛點問題。 實際開發中可以通過以下幾種標簽進行動態SQL拼接。 1 if標簽 根據test屬性所對應的表達式計算結果決定標簽中的內容是否拼接到sql中。 …

基于SpringBoot+JSP+Mysql寵物領養網站+協同過濾算法推薦寵物(Java畢業設計)

大家好&#xff0c;我是DeBug&#xff0c;很高興你能來閱讀&#xff01;作為一名熱愛編程的程序員&#xff0c;我希望通過這些教學筆記與大家分享我的編程經驗和知識。在這里&#xff0c;我將會結合實際項目經驗&#xff0c;分享編程技巧、最佳實踐以及解決問題的方法。無論你是…

《C++新經典設計模式》之第15章 適配器模式

《C新經典設計模式》之第15章 適配器模式 適配器模式.cpp 適配器模式.cpp #include <iostream> #include <vector> #include <string> #include <fstream> #include <memory> using namespace std;// 解決兩個類之間的兼容性問題 // 轉換接口調…

ffmpeg6.0之ffprobe.c源碼分析二-核心功能源碼分析

本篇我們繼續分析: 1、ffprobe -show_packets 參數的處理流程;2、ffprobe -show_frames 參數的處理流程;3、ffprobe -show_streams 參數的處理流程;4、ffprobe -show_format 參數的處理流程; 因為前面的文章已經回顧了這些命令的使用,以及作用。本文就不在贅述,以免篇幅…

《妙趣橫生的算法》(C語言實現)- 第5章 數學趣題(一)

《妙趣橫生的算法》&#xff08;C語言實現&#xff09;-第5章 數學趣題&#xff08;一&#xff09; 提示&#xff1a;這里可以添加系列文章的所有文章的目錄&#xff0c;目錄需要自己手動添加 例如&#xff1a;第一章 Python 機器學習入門之pandas的使用 提示&#xff1a;寫完文…

“新華三杯”第十屆成都信息工程大學ACM程序設計競賽(同步賽)L. 怎么走啊(最短路+二分 分段函數)

題目 登錄—專業IT筆試面試備考平臺_牛客網 思路來源 衡陽師范學院ac代碼、pj學弟 題解 大致可以證明&#xff0c;在w從1e5減小到1的過程中&#xff0c; 之前某條反向邊沒有用到&#xff0c;現在需要用到反向邊&#xff0c;也就是正向邊用到的變少了 這樣的變化有sqrt個&a…

分層網絡模型(OSI、TCP/IP)及對應的網絡協議

OSI七層網絡模型 OSI&#xff08;Open System Interconnect&#xff09;&#xff0c;即開放式系統互連參考模型&#xff0c; 一般都叫OSI參考模型&#xff0c;是ISO組織于1985年研究的網絡互連模型。OSI是分層的體系結構&#xff0c;每一層是一個模塊&#xff0c;用于完成某種功…

服務器GPU占用,kill -9 PID 用不了,解決辦法

PID&#xff08;progress ID 進程ID&#xff09; 上圖為占用情況&#xff0c;使用下面的指令都不管用 kill -9 PID kill -15 PID # 加入sudo 還是不行 # 等等網上的 chatgpt 提供的其他辦法&#xff0c;一圈試了下來還是不管用最后解決辦法 首先用下面的指令查看進程的樹結構…