| 12345678910111213141516171819202122232425262728 |
- from sqlalchemy.orm import Query
- from sqlalchemy.orm import Session
- def paginate(
- query: Query,
- page: int = 1,
- size: int = 20,
- ):
- if page < 1:
- page = 1
- if size < 1:
- size = 20
- total = query.count()
- items = (
- query
- .offset((page - 1) * size)
- .limit(size)
- .all()
- )
- return {
- "items": items,
- "total": total,
- "page": page,
- "size": size,
- }
|