python Django框架實現(xiàn)web端分頁呈現(xiàn)數(shù)據(jù)
這里介紹使用python-Django框架來實現(xiàn)web端分頁呈現(xiàn)數(shù)據(jù),主要說明對應的views,urls,templates三個文件的編程邏輯的實現(xiàn)。
首先介紹Django中的paginator類。paginator是Django中提供的可以實現(xiàn)管理數(shù)據(jù)分頁的類。
from django.core import paginator
下面是本文用到的paginator中的屬性和方法。
Paginator對象
1. 構造:Paginator(列表,int):返回分頁的整體對象。
2. page_range:返回頁碼列表 [1,2,3,4…]
3. page(num):返回num頁的數(shù)據(jù)內(nèi)容
Page對象
1. 構造:Paginator對象的page()方法返回Page對象。
2. number:返回當前頁的序號。
3. paginator:當前page對象相關的Paginator對象。page.paginator相當于Paginator對象。
A. 構造url。
#---urls.py------ from django.conf.urls import url import views urlpatterns = [ # 這個url構造在根目錄下 # 定義為'info/數(shù)字'是為了傳一個頁面序號為參數(shù)給視圖函數(shù) # 視圖函數(shù)接收到這個數(shù)字為參數(shù)后,就可以調(diào)用對應頁的數(shù)據(jù)呈現(xiàn) # 例如我們輸入www.xxx.com/info/3,視圖函數(shù)就會接收到(request,3)兩個參數(shù) url(r'^info/(\d*)$',views.info), ] #---------
B. 編寫視圖函數(shù)的邏輯。
#---views.py--- from django.shortcuts import render # 這里的lcoation是定義的模型類,包含有若干條地名數(shù)據(jù) from models import location from django.core import paginator # 視圖函數(shù) # 同樣,index是url傳進來的頁面序號 def info(request,index): # 獲取所有的的數(shù)據(jù),list是一個列表,包含有所有數(shù)據(jù)對應的實例對象 list = location.objects.all() # 使用Paginator方法返回一個分頁的對象 # 這個對象包括所有數(shù)據(jù),分頁的情況 pag = paginator.Paginator(list,3) # 使用此判斷語句是為了在用戶跳轉www.xxx.com/info/時也能訪問第一頁 if index=='': index=1 # 返回指定(index)頁的數(shù)據(jù),用于呈現(xiàn)在指定頁上 page = pag.page(index) # 構造上下文,以便html文件中能調(diào)用對應頁的數(shù)據(jù) context = { 'page':page, } return render(request,'booktest/info.html',context) #---------
C. 模板文件。
#---info.html------ <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <ul> # 視圖函數(shù)傳進來的上下文page是指定頁的數(shù)據(jù) {% for each in page %} # 遍歷顯示每條數(shù)據(jù) <li>{{ each.location_name }}</li> {% endfor %} </ul> <hr> # 這里是重點 # 同樣還是需要調(diào)用視圖函數(shù)傳進來的page頁的頁碼 # page.paginator得到page的paginator對象 # page.pageinator.page_range page_range可以返回頁面列表[1,2,3,4...] # 遍歷頁面列表 {% for index in page.paginator.page_range %} # page.number是視圖函數(shù)現(xiàn)在呈現(xiàn)頁的頁碼 # 這個頁碼不需要做超鏈接 {% if index == page.number %} <span>{{ index }}</span> {% else %} # 生成每頁超鏈接 # 點擊每一個數(shù)字對應的鏈接就是'/info/點擊的頁數(shù)' # 這樣在url解析的時候,又可以把這一頁的編號傳給視圖函數(shù) # 視圖函數(shù)根據(jù)這個頁碼呈現(xiàn)對應的內(nèi)容 <a href="/info/{{index}}" rel="external nofollow" >{{ index }}</a> {% endif %} {% endfor %} </body> </html> #---------
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
如何用Python?實現(xiàn)景區(qū)安防系統(tǒng)
本設計中,利用YOLO目標檢測算法、Openpose姿態(tài)識別算法、deepsort跟蹤算法、MSCNN人群密度估計算法實現(xiàn)了火災監(jiān)測、吸煙監(jiān)測、行為安全監(jiān)測、人群密度監(jiān)測、口罩率監(jiān)測、人員定位監(jiān)測六大功能,對Python?實現(xiàn)景區(qū)安防系統(tǒng)感興趣的朋友一起看看吧2022-07-07Python 調(diào)用 C++ 傳遞numpy 數(shù)據(jù)詳情
這篇文章主要介紹了Python 調(diào)用 C++ 傳遞numpy 數(shù)據(jù)詳情,文章主要分為兩部分,c++代碼和python代碼,代碼分享詳細,需要的小伙伴可以參考一下,希望對你有所幫助2022-03-03面向新手解析python Beautiful Soup基本用法
這篇文章主要介紹了面向新手解析python Beautiful Soup基本用法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-07-07Python實現(xiàn)在Linux系統(tǒng)下更改當前進程運行用戶
這篇文章主要介紹了Python實現(xiàn)在Linux系統(tǒng)下更改當前進程運行用戶,本文直接給出實現(xiàn)代碼,需要的朋友可以參考下2015-02-02