Снижает ли Paginator из django.core.paginator нагрузку на сервер?

Я использую Django.core.paginator для разбивки данных на страницы в веб-фреймворке Django.

data = emodel.objects.filter(Id=e_id, Date__range=(start_date,end_date))

и в пагинаторе:

page = request.GET.get('page', 1)
    paginator = Paginator(data, settings.PAGE_LIMIT)
    
    try:
        data_list = paginator.page(page)
    except PageNotAnInteger:
        data_list = paginator.page(1)
    except EmptyPage:
        data_list = paginator.page(paginator.num_pages)

    
    context = {"data_list":data_list}

    return render(request, 'my_app/data.html', context)

Получает ли результат сначала все запросы, а затем разделяет их? Или из базы данных извлекается только PAGE_SIZE?

если "Да", то существует ли какой-либо метод снижения нагрузки на сервер наряду с model.objects.filter(....)

Paginator только разделяет ваш набор запросов на несколько страниц. Весь набор запросов, который вы получаете из бэкенда, будет получен. Однако вы заметите, что ваша страница загружается быстрее, если вы используете пагинатор.

Итак, добавление пагинатора заставит ваше веб-приложение загружаться быстрее, и оно будет казаться более эффективным.

Вернуться на верх