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()

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

FastAPI

前の記事

FastAPI SchemaNew!!