Используйте разбиение на страницы для рендеринга данных небольшими партиями, определите размер страницы в соответствии с вашими требованиями, чтобы у вас было достаточно данных для обработки / отображения в пользовательском интерфейсе при первом вызове, и выполните последующий вызов, чтобы получить еще больше данных по запросу, используя next_page_url.
Flask-SQLAlchemy изначально поддерживает разбиение на страницы с помощью метода запроса paginate ()
Метод paginate можно вызывать для любого объекта запроса из Flask-SQLAlchemy.Он принимает три аргумента:
- номер страницы, начиная с 1
- количество элементов на странице
- флаг ошибки.Если True, когда запрашивается страница вне диапазона, ошибка 404 будет автоматически возвращена клиенту.Если False, пустой список будет возвращен для страниц вне диапазона.
Возвращаемое значение из paginate - это объект Pagination.Атрибут items этого объекта содержит список элементов на запрашиваемой странице.
Ниже приведен обновленный код с использованием нумерации страниц.
@app.route("/all-schools-schedule/christmas-past", methods=['GET'])
def past_school_schedules():
# this creates couchbase object
cb = get_db().paginate(
page, POSTS_PER_PAGE, False)
return render_template('school_schedule.html', past=cb.items)
Надеюсь, это поможет!