欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python Django框架實(shí)現(xiàn)web端分頁呈現(xiàn)數(shù)據(jù)

 更新時(shí)間:2019年10月31日 14:50:37   作者:Nick_Spider  
這篇文章主要介紹了python Django框架實(shí)現(xiàn)web端分頁呈現(xiàn)數(shù)據(jù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

這里介紹使用python-Django框架來實(shí)現(xiàn)web端分頁呈現(xiàn)數(shù)據(jù),主要說明對(duì)應(yīng)的views,urls,templates三個(gè)文件的編程邏輯的實(shí)現(xiàn)。

首先介紹Django中的paginator類。paginator是Django中提供的可以實(shí)現(xiàn)管理數(shù)據(jù)分頁的類。

from django.core import paginator 

下面是本文用到的paginator中的屬性和方法。

Paginator對(duì)象

1. 構(gòu)造:Paginator(列表,int):返回分頁的整體對(duì)象。
2. page_range:返回頁碼列表 [1,2,3,4…]
3. page(num):返回num頁的數(shù)據(jù)內(nèi)容

Page對(duì)象

1. 構(gòu)造:Paginator對(duì)象的page()方法返回Page對(duì)象。
2. number:返回當(dāng)前頁的序號(hào)。
3. paginator:當(dāng)前page對(duì)象相關(guān)的Paginator對(duì)象。page.paginator相當(dāng)于Paginator對(duì)象。

A. 構(gòu)造url。

#---urls.py------
from django.conf.urls import url
import views
urlpatterns = [
 # 這個(gè)url構(gòu)造在根目錄下
 # 定義為'info/數(shù)字'是為了傳一個(gè)頁面序號(hào)為參數(shù)給視圖函數(shù)
 # 視圖函數(shù)接收到這個(gè)數(shù)字為參數(shù)后,就可以調(diào)用對(duì)應(yīng)頁的數(shù)據(jù)呈現(xiàn)
 # 例如我們輸入www.xxx.com/info/3,視圖函數(shù)就會(huì)接收到(request,3)兩個(gè)參數(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傳進(jìn)來的頁面序號(hào)
def info(request,index):
 # 獲取所有的的數(shù)據(jù),list是一個(gè)列表,包含有所有數(shù)據(jù)對(duì)應(yīng)的實(shí)例對(duì)象
 list = location.objects.all()
 # 使用Paginator方法返回一個(gè)分頁的對(duì)象
 # 這個(gè)對(duì)象包括所有數(shù)據(jù),分頁的情況
 pag = paginator.Paginator(list,3)
 # 使用此判斷語句是為了在用戶跳轉(zhuǎn)www.xxx.com/info/時(shí)也能訪問第一頁
 if index=='':
  index=1
 # 返回指定(index)頁的數(shù)據(jù),用于呈現(xiàn)在指定頁上
 page = pag.page(index)
 # 構(gòu)造上下文,以便html文件中能調(diào)用對(duì)應(yīng)頁的數(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ù)傳進(jìn)來的上下文page是指定頁的數(shù)據(jù)
 {% for each in page %}
 # 遍歷顯示每條數(shù)據(jù)
 <li>{{ each.location_name }}</li>
 {% endfor %}
</ul>
<hr>
 # 這里是重點(diǎn)
 # 同樣還是需要調(diào)用視圖函數(shù)傳進(jìn)來的page頁的頁碼
 # page.paginator得到page的paginator對(duì)象
 # page.pageinator.page_range page_range可以返回頁面列表[1,2,3,4...]
 # 遍歷頁面列表
 {% for index in page.paginator.page_range %}
  # page.number是視圖函數(shù)現(xiàn)在呈現(xiàn)頁的頁碼
  # 這個(gè)頁碼不需要做超鏈接
  {% if index == page.number %}
  <span>{{ index }}</span>
  {% else %}
  # 生成每頁超鏈接
  # 點(diǎn)擊每一個(gè)數(shù)字對(duì)應(yīng)的鏈接就是'/info/點(diǎn)擊的頁數(shù)'
  # 這樣在url解析的時(shí)候,又可以把這一頁的編號(hào)傳給視圖函數(shù)
  # 視圖函數(shù)根據(jù)這個(gè)頁碼呈現(xiàn)對(duì)應(yīng)的內(nèi)容
   <a href="/info/{{index}}" rel="external nofollow" >{{ index }}</a>
  {% endif %}
 {% endfor %}

</body>
</html>
#---------

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 使用Python制作自動(dòng)推送微信消息提醒的備忘錄功能

    使用Python制作自動(dòng)推送微信消息提醒的備忘錄功能

    這篇文章主要介紹了使用Python制作自動(dòng)推送微信消息提醒的備忘錄功能,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2018-09-09
  • python中屏蔽輸出示例詳解

    python中屏蔽輸出示例詳解

    python中屏蔽輸出包含屏蔽標(biāo)準(zhǔn)輸出(比如打印出來的內(nèi)容)、屏蔽標(biāo)準(zhǔn)錯(cuò)誤(錯(cuò)誤信息)還有屏蔽logging信息等,這篇文章主要介紹了python中屏蔽輸出,需要的朋友可以參考下
    2024-05-05
  • 如何用Python?實(shí)現(xiàn)景區(qū)安防系統(tǒng)

    如何用Python?實(shí)現(xiàn)景區(qū)安防系統(tǒng)

    本設(shè)計(jì)中,利用YOLO目標(biāo)檢測算法、Openpose姿態(tài)識(shí)別算法、deepsort跟蹤算法、MSCNN人群密度估計(jì)算法實(shí)現(xiàn)了火災(zāi)監(jiān)測、吸煙監(jiān)測、行為安全監(jiān)測、人群密度監(jiān)測、口罩率監(jiān)測、人員定位監(jiān)測六大功能,對(duì)Python?實(shí)現(xiàn)景區(qū)安防系統(tǒng)感興趣的朋友一起看看吧
    2022-07-07
  • Python中的OpenCV圖像閾值處理和平滑處理詳解

    Python中的OpenCV圖像閾值處理和平滑處理詳解

    這篇文章主要介紹了Python中的OpenCV圖像閾值處理和平滑處理詳解,OpenCV是一個(gè)跨平臺(tái)的計(jì)算機(jī)視覺庫,可用于開發(fā)實(shí)時(shí)的圖像處理、計(jì)算機(jī)視覺以及模式識(shí)別程序,需要的朋友可以參考下
    2023-08-08
  • Python 調(diào)用 C++ 傳遞numpy 數(shù)據(jù)詳情

    Python 調(diào)用 C++ 傳遞numpy 數(shù)據(jù)詳情

    這篇文章主要介紹了Python 調(diào)用 C++ 傳遞numpy 數(shù)據(jù)詳情,文章主要分為兩部分,c++代碼和python代碼,代碼分享詳細(xì),需要的小伙伴可以參考一下,希望對(duì)你有所幫助
    2022-03-03
  • 如何用Python進(jìn)行時(shí)間序列分解和預(yù)測

    如何用Python進(jìn)行時(shí)間序列分解和預(yù)測

    這篇文章主要介紹了如何用Python進(jìn)行時(shí)間序列分解和預(yù)測,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-02-02
  • 詳解Django解決ajax跨域訪問問題

    詳解Django解決ajax跨域訪問問題

    這篇文章主要介紹了詳解Django解決ajax跨域訪問問題,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-08-08
  • 面向新手解析python Beautiful Soup基本用法

    面向新手解析python Beautiful Soup基本用法

    這篇文章主要介紹了面向新手解析python Beautiful Soup基本用法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • 使用Python進(jìn)行視頻相似度比較實(shí)例

    使用Python進(jìn)行視頻相似度比較實(shí)例

    這篇文章主要介紹了使用Python進(jìn)行視頻相似度比較實(shí)例,本文通過漢明距離算法與圖片比較等方法對(duì)比兩個(gè)視頻流的相似度,文中提供了部分實(shí)現(xiàn)代碼與解決思路,需要的朋友可以參考下
    2023-07-07
  • Python實(shí)現(xiàn)在Linux系統(tǒng)下更改當(dāng)前進(jìn)程運(yùn)行用戶

    Python實(shí)現(xiàn)在Linux系統(tǒng)下更改當(dāng)前進(jìn)程運(yùn)行用戶

    這篇文章主要介紹了Python實(shí)現(xiàn)在Linux系統(tǒng)下更改當(dāng)前進(jìn)程運(yùn)行用戶,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2015-02-02

最新評(píng)論