Django 노트(페이지 나누기)

1688 단어 Django
Django는 페이지 나누기 도구를 제공합니다.django에 존재합니다.core 중
from django.core.paginator import Paginator

Paginator:
객체 생성: Paginator(데이터 세트, 페이지당 데이터 수)
속성:
count 대상 총수
num_페이지:총 페이지 수
page_range: 페이지 목록, 1부터 시작
object_list: 현재 페이지의 모든 데이터 대상
number: 현재 페이지의 번호 값
paginator:현재 페이지와 연결된 Paginator 객체
방법:page(정수):page 객체 가져오기
Page: 객체 획득, Paginator의 페이지() 방법을 통해 획득
  has_next (): 다음 페이지가 있는지 판단
  has_previous (): 이전 페이지가 있는지 판단
  has_other_페이지(): 이전 페이지나 다음 페이지가 있는지 판단
  next_page_number (): 다음 페이지의 페이지 번호로 돌아가기
  previous_page_number (): 이전 페이지의 페이지 번호를 되돌려줍니다
len (): 현재 페이지의 데이터를 되돌려주는 개수
백엔드
from django.core.paginator import Paginator
from django.http import HttpResponse
from django.shortcuts import render
from dj05app.models import MyUser

# Create your views here.
USER_PEER_PAGE_NUM = 5

def get_user_by_num(req, page_num):
    page_num = int(page_num)
    #       
    users = MyUser.objects.all()
    #     
    paginator = Paginator(
        users,
        USER_PEER_PAGE_NUM
    )
    #     
    if page_num <= 0 or page_num > paginator.num_pages:
        return HttpResponse("    ")
    #              
    page = paginator.page(page_num)
    data = {
        'users': page.object_list
    }
    return render(req, 'users.html', data)

프런트엔드
    {% for i in users %}
  • {{ i.username }}
  • {% endfor %}

urls
from django.conf.urls import url
from .views import get_user_by_num

urlpatterns = [
    url(r'^user/(\d+)', get_user_by_num)
]

좋은 웹페이지 즐겨찾기