Operations

You can use regular orm statement to paginate the results. So, applying filters are same as you always did.

Here is an example for sqlalchemy

from fastapi import FastAPI, Depends
from pydantic import BaseModel

from fastapi_paginate import Page, add_pagination
from fastapi_paginate.ext.sqlalchemy import paginate

from sqlalchemy.orm import Session

app = FastAPI()

class UserModel(Base):
    name = Column(String)
    surname = Column(String)
    age = Column(Integer)

class User(BaseModel):
    name: str
    surname: str
    age: int

@app.get('/users', response_model=Page[User])
async def get_users(db_session: Session = Depends(get_db_session)):
    stmt = db_session.query(UserModel)

    # add filters 
    stmt = stmt.filter(UserModel.age < 30)

    # sort
    stmt = stmt.order_by(asc(UserModel.age))

    return paginate(stmt)


add_pagination(app)