最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Django實(shí)現(xiàn)分頁(yè)功能

 更新時(shí)間:2018年07月02日 08:59:22   作者:_世紀(jì)末的魔術(shù)師_  
今天給大家分享的是如何使用Django實(shí)現(xiàn)簡(jiǎn)單分頁(yè)功能的方法,主要依托于Django提供的一個(gè)新的類Paginator來(lái)實(shí)現(xiàn)的

Django提供了一個(gè)新的類來(lái)幫助你管理分頁(yè)數(shù)據(jù),這個(gè)類存放在django/core/paginator.py.它可以接收列表、元組或其它可迭代的對(duì)象。

class Paginator(object):
 
  def __init__(self, object_list, per_page, orphans=0,
         allow_empty_first_page=True):
    self.object_list = object_list
    self.per_page = int(per_page)
    self.orphans = int(orphans)
    self.allow_empty_first_page = allow_empty_first_page
 
……

 

基本語(yǔ)法實(shí)例

#!/usr/bin/env python
# _*_ coding:utf-8 _*_
 
import os
 
from django.core.paginator import Paginator
objects = ['john','paul','george','ringo','lucy','meiry','checy','wind','flow','rain']<br>
p = Paginator(objects,3) # 3條數(shù)據(jù)為一頁(yè),實(shí)例化分頁(yè)對(duì)象
print p.count # 10 對(duì)象總共10個(gè)元素
print p.num_pages # 4 對(duì)象可分4頁(yè)
print p.page_range # xrange(1, 5) 對(duì)象頁(yè)的可迭代范圍
 
page1 = p.page(1) # 取對(duì)象的第一分頁(yè)對(duì)象
print page1.object_list # 第一分頁(yè)對(duì)象的元素列表['john', 'paul', 'george']
print page1.number # 第一分頁(yè)對(duì)象的當(dāng)前頁(yè)值 1
 
page2 = p.page(2) # 取對(duì)象的第二分頁(yè)對(duì)象
print page2.object_list # 第二分頁(yè)對(duì)象的元素列表 ['ringo', 'lucy', 'meiry']
print page2.number # 第二分頁(yè)對(duì)象的當(dāng)前頁(yè)碼值 2
 
print page1.has_previous() # 第一分頁(yè)對(duì)象是否有前一頁(yè) False
print page1.has_other_pages() # 第一分頁(yè)對(duì)象是否有其它頁(yè) True
 
print page2.has_previous() # 第二分頁(yè)對(duì)象是否有前一頁(yè) True
print page2.has_next() # 第二分頁(yè)對(duì)象是否有下一頁(yè) True
print page2.next_page_number() # 第二分頁(yè)對(duì)象下一頁(yè)碼的值 3
print page2.previous_page_number() # 第二分頁(yè)對(duì)象的上一頁(yè)碼值 1
print page2.start_index() # 第二分頁(yè)對(duì)象的元素開(kāi)始索引 4
print page2.end_index() # 第2分頁(yè)對(duì)象的元素結(jié)束索引 6

 官方解釋在視圖中的應(yīng)用

from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
from django.shortcuts import render
 
def listing(request):
  contact_list = Contacts.objects.all()
  paginator = Paginator(contact_list, 25) # Show 25 contacts per page
 
  page = request.GET.get('page')
  try:
    contacts = paginator.page(page)
  except PageNotAnInteger:
    # If page is not an integer, deliver first page.
    contacts = paginator.page(1)
  except EmptyPage:
    # If page is out of range (e.g. 9999), deliver last page of results.
    contacts = paginator.page(paginator.num_pages)
 
  return render(request, 'list.html', {'contacts': contacts})

在template的html模板中的應(yīng)用

{% for contact in contacts %}
  {# Each "contact" is a Contact model object. #}
  {{ contact.full_name|upper }}<br />
  ...
{% endfor %}
 
<div class="pagination">
  <span class="step-links">
    {% if contacts.has_previous %}
      <a href="?page={{ contacts.previous_page_number }}">previous</a>
    {% endif %}
 
    <span class="current">
      Page {{ contacts.number }} of {{ contacts.paginator.num_pages }}.
    </span>
 
    {% if contacts.has_next %}
      <a href="?page={{ contacts.next_page_number }}">next</a>
    {% endif %}
  </span>
</div>

舉例講述分頁(yè)功能的使用目的說(shuō)明

  現(xiàn)要實(shí)現(xiàn)如下功能

    1、網(wǎng)頁(yè)上顯示分頁(yè)數(shù)據(jù),3條數(shù)據(jù)為一頁(yè)

    2、有分頁(yè)導(dǎo)航功能,被選中頁(yè)高亮顯示

    3、如果沒(méi)有上一頁(yè)或下一頁(yè),則不出現(xiàn)箭頭導(dǎo)航

    4、如果最后一頁(yè)的數(shù)據(jù)少于2條,合并到上一頁(yè)

效果圖

  圖1:

   圖2:

 視圖定義

  定義templates

 

 分頁(yè)功能優(yōu)化

目標(biāo):

  1、在template中的html模板中使用自定義函數(shù)

  2、不管有多少分頁(yè),頁(yè)面上最多顯示5頁(yè)

 

基礎(chǔ)知識(shí)

Django的模板語(yǔ)言包含了各種各樣的內(nèi)置標(biāo)簽和過(guò)濾器來(lái)滿足你的應(yīng)用需求,不過(guò)有時(shí)候你也會(huì)發(fā)現(xiàn)你的需要的功能不在內(nèi)置的功能中,這時(shí)候你可以通過(guò)Python語(yǔ)言自定義標(biāo)簽和過(guò)濾器來(lái)擴(kuò)展模板引擎,然后在你的模板中使用{% load %}來(lái)加載使用它們。

在你的app下創(chuàng)建templatetags包,在其下創(chuàng)建python腳本來(lái)定義你的標(biāo)簽和過(guò)濾器,如:

polls/
  __init__.py
  models.py
  templatetags/
    __init__.py
    poll_extras.py
  views.py

然后在你的模板中使用

{% load poll_extras %}

項(xiàng)目實(shí)戰(zhàn)

自定義過(guò)濾器和標(biāo)簽

在模板中引用

效果圖:

https://github.com/kongzhagen/python/tree/master/Django

相關(guān)文章

  • python調(diào)用函數(shù)、類和文件操作簡(jiǎn)單實(shí)例總結(jié)

    python調(diào)用函數(shù)、類和文件操作簡(jiǎn)單實(shí)例總結(jié)

    這篇文章主要介紹了python調(diào)用函數(shù)、類和文件操作,結(jié)合簡(jiǎn)單實(shí)例形式總結(jié)分析了Python調(diào)用函數(shù)、類和文件操作的各種常見(jiàn)操作技巧,需要的朋友可以參考下
    2019-11-11
  • 在VS Code上搭建Python開(kāi)發(fā)環(huán)境的方法

    在VS Code上搭建Python開(kāi)發(fā)環(huán)境的方法

    這篇文章主要介紹了在VS Code上搭建Python開(kāi)發(fā)環(huán)境的方法,需要的朋友可以參考下
    2018-04-04
  • python中join()方法介紹

    python中join()方法介紹

    Python join() 方法用于將序列中的元素以指定的字符連接生成一個(gè)新的字符串。這篇文章主要介紹了python中join()方法,需要的朋友可以參考下
    2018-10-10
  • Python數(shù)據(jù)類型詳解(二)列表

    Python數(shù)據(jù)類型詳解(二)列表

    本文給大家詳細(xì)介紹的是Python數(shù)據(jù)類型中的列表(list),非常的簡(jiǎn)單實(shí)用,有需要的小伙伴可以參考下
    2016-05-05
  • Python?IDLE設(shè)置清屏快捷鍵的方法詳解

    Python?IDLE設(shè)置清屏快捷鍵的方法詳解

    這篇文章主要為大家詳細(xì)介紹了Python?IDLE設(shè)置清屏快捷鍵的方法,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的可以了解一下
    2022-09-09
  • python簡(jiǎn)單實(shí)現(xiàn)刷新智聯(lián)簡(jiǎn)歷

    python簡(jiǎn)單實(shí)現(xiàn)刷新智聯(lián)簡(jiǎn)歷

    本文給大家分享的是個(gè)人弄的一個(gè)使用Python簡(jiǎn)單實(shí)現(xiàn)刷新智聯(lián)招聘簡(jiǎn)歷的小工具的代碼,非常的簡(jiǎn)單,給大家參考下吧。
    2016-03-03
  • Python3中對(duì)json格式數(shù)據(jù)的分析處理

    Python3中對(duì)json格式數(shù)據(jù)的分析處理

    這篇文章主要介紹了Python3中對(duì)json格式數(shù)據(jù)的分析處理,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • 解讀Django框架中的低層次緩存API

    解讀Django框架中的低層次緩存API

    這篇文章主要介紹了解讀Django框架中的低層次緩存API,Django是最具人氣的Python web開(kāi)發(fā)框架,需要的朋友可以參考下
    2015-07-07
  • Python基礎(chǔ)之?dāng)?shù)據(jù)類型詳解

    Python基礎(chǔ)之?dāng)?shù)據(jù)類型詳解

    python的數(shù)值類型包括整數(shù),浮點(diǎn)數(shù),復(fù)數(shù),集合,小數(shù)和分?jǐn)?shù),布爾值.它們都是python中的數(shù)值類型.如果是有過(guò)其他語(yǔ)言編寫經(jīng)驗(yàn)的人,一定很好奇,浮點(diǎn)數(shù)和小數(shù)的區(qū)別是什么?文中有非常詳細(xì)的介紹,需要的朋友可以參考下
    2021-06-06
  • Python hasattr函數(shù)的具體使用

    Python hasattr函數(shù)的具體使用

    本文主要介紹了Python hasattr函數(shù)的具體使用,包括基本用法、返回值、應(yīng)用場(chǎng)景,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-02-02

最新評(píng)論

桦川县| 磐安县| 宁武县| 万安县| 兖州市| 松滋市| 东乌珠穆沁旗| 汶川县| 桐庐县| 依安县| 子洲县| 渭源县| 犍为县| 公主岭市| 慈溪市| 郁南县| 赤壁市| 施甸县| 嘉善县| 天门市| 新建县| 成都市| 田东县| 湘潭县| 汨罗市| 乌拉特前旗| 宜昌市| 桐梓县| 临高县| 北安市| 堆龙德庆县| 南投市| 如东县| 龙口市| 奎屯市| 焦作市| 丹寨县| 巍山| 岳西县| 五台县| 股票|