FastAPI CRUD
ファイル一覧
プロジェクトフォルダ
┗ db.py
┗ main.py
┗ migrate_db.py
┗ models
┗ cruds
┗ task.py
┗ schemas
┗ routers
CRUD定義
from sqlalchemy.orm import Session
from sqlalchemy import select
from sqlalchemy.engine import Result
import api.models.task as task_model
import api.schemas.task as task_schema
/cruds/task.py
def crete_task(
db: Session,
task_create: task_schema.TaskCreate
) ->
task_model.Task:
task = task_model.Task(**task_create.dict())
db.add(task)
db.commit()
db.refresh(task)
return task
def get_tasks_with_done(
db: Session
) ->
list[tuple[int, str, bool]]:
result: Result = db.execute(
select(
task_model.Task.id,
task_model.Task.title,
task_model.Done.id.isnot(None).label(“done”)
).outerjoin(task_model.Done)
)
return result.all()