在Django中,我們經常需要將數據分頁展示,而json分頁就是其中一個常用的方式。接下來,我們就來介紹一下如何使用Django實現json分頁。
# views.py from django.core.paginator import Paginator from django.http import JsonResponse def my_view(request): data = [{'name': 'Tom', 'age': 20}, {'name': 'Jerry', 'age': 22}, {'name': 'Peter', 'age': 24}, {'name': 'Sarah', 'age': 26}, {'name': 'David', 'age': 28}, {'name': 'Linda', 'age': 30}] page = request.GET.get('page', 1) page_size = request.GET.get('page_size', 2) paginator = Paginator(data, page_size) current_page = paginator.get_page(page) result = { 'count': paginator.count, 'num_pages': paginator.num_pages, 'has_previous': current_page.has_previous(), 'has_next': current_page.has_next(), 'previous_page_number': current_page.previous_page_number(), 'next_page_number': current_page.next_page_number(), 'data': current_page.object_list, } return JsonResponse(result)
上面的代碼中,我們首先定義了一個data列表,它存儲了一些數據。接著,我們根據請求參數page和page_size,創建了一個Paginator對象,并獲取了當前頁的數據。最后,我們將獲取的數據以json數據格式返回給前端。
接下來,我們就可以通過以下方式訪問我們的分頁接口了:
/my_view?page=1&page_size=2
上面的請求將返回第一頁,每頁2條記錄的數據。如果需要獲取第二頁,只需要將請求參數中page改為2即可。
總的來說,使用Django實現json分頁非常簡單,只需要使用Paginator即可。當然,如果需要更加細粒度的控制,可以參考Django官方文檔中有關Paginator的內容。