from fastapi import APIRouter from starlette.requests import Request from tortoise.queryset import QuerySet from models.task import Task from helper import respond_to task_router = APIRouter(prefix='/task') @task_router.get("/") def read_root(): return {"Hello": "World"} @task_router.get('/list', summary="列出所有任务") async def index(request: Request, page_no: int = 1, page_size: int = 20): """ 列出所有任务 :param page_no: 1 :param page_size: 20 :return: """ offset = (page_no - 1) * page_size query = QuerySet(Task).filter(is_canceled=False, is_valid=True, is_active=True) count = await query.count() tasks = await query.limit(page_size).offset(offset) return respond_to(code=200, data=dict(count=count, data=tasks))