django 페이지 나누기paginator 사용 간단한 설명

Django의 페이지 나누기 기능
Django는 페이지 데이터를 관리하는 데 도움을 주는 새로운 클래스를 제공합니다. 이 클래스는django/core/paginator에 저장됩니다.py.그것은 목록, 모듈, 또는 다른 교체 가능한 대상을 수신할 수 있다.
기본 문법
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
 
……

 
기본 구문 인스턴스
#!/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']
p = Paginator(objects,3)  # 3 , print p.count  # 10  10 print p.num_pages  # 4  4 print p.page_range  # xrange(1, 5)    page1 = p.page(1)  #  print page1.object_list  #  ['john', 'paul', 'george'] print page1.number  #   1   page2 = p.page(2)  #  print page2.object_list  #   ['ringo', 'lucy', 'meiry'] print page2.number  #   2   print page1.has_previous()  #   False print page1.has_other_pages()  #   True   print page2.has_previous()  #   True print page2.has_next()  #   True print page2.next_page_number()  #   3 print page2.previous_page_number()  #   1 print page2.start_index()  #   4 print page2.end_index()  #  2  6

뷰에서의 응용
from django.core.paginator import Paginator, InvalidPage,EmptyPage,PageNotAnInteger
from django.shortcuts import render
 
def listing(request):
    try:
        article_list = Article.objects.all()                #      
        paginator = Paginator(article_list,3)               #      ,    5 
        try:
            page = int(request.GET.get('page',1))           #       ,           ,    1
            article_list = paginator.page(page)
        except (EmptyPage,InvalidPage,PageNotAnInteger):
            article_list = paginator.page(1)

    except Exception as e:
        logger.error(e)
    return render(request, "index.html", locals())           #locals     ,             

 
프런트엔드 구성:
template의 html 템플릿에서의 응용
{% %}

  
    {{ .}}
    {{ .}}
    {% ..%}{{ .}}{% %}{{ .}}  ({{ .}})  ({{ ...}})
  

{% %}
    
    {% .%}
    {{ .}}   
    {% %}
       
    {% %}
     {{ .}}/{{ ..}}
    {% .%}
      {{ .}}    
    {% %}
          
    {% %}

좋은 웹페이지 즐겨찾기