| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- # coding=utf-8
- """
- @project: MaxKB
- @Author:虎
- @file: page_utils.py
- @date:2024/11/21 10:32
- @desc:
- """
- from math import ceil
- def page(query_set, page_size, handler, is_the_task_interrupted=lambda: False):
- """
- @param query_set: 查询query_set
- @param page_size: 每次查询大小
- @param handler: 数据处理器
- @param is_the_task_interrupted: 任务是否被中断
- @return:
- """
- query = query_set.order_by("id")
- count = query_set.count()
- for i in range(0, ceil(count / page_size)):
- if is_the_task_interrupted():
- return
- offset = i * page_size
- paragraph_list = query.all()[offset: offset + page_size]
- handler(paragraph_list)
- def page_desc(query_set, page_size, handler, is_the_task_interrupted=lambda: False):
- """
- @param query_set: 查询query_set
- @param page_size: 每次查询大小
- @param handler: 数据处理器
- @param is_the_task_interrupted: 任务是否被中断
- @return:
- """
- query = query_set.order_by("id")
- count = query_set.count()
- for i in sorted(range(0, ceil(count / page_size)), reverse=True):
- if is_the_task_interrupted():
- return
- offset = i * page_size
- paragraph_list = query.all()[offset: offset + page_size]
- handler(paragraph_list)
|