FastAPI Model
ファイル一覧
プロジェクトフォルダ
┗ db.py
┗ main.py
┗ migrate_db.py
┗ models
┗ task.py
┗ cruds
┗ schemas
┗ routers
モデル定義
※/models/task.py
from sqlalchemy import Column, Integer, String, ForeignKey
from sqlalchemy.orm import relationship
from api.db import Base
class Task(Base):
__tablename__ = ‘tasks’
id = Column(Integer, primary_key=True)
title = Column(String(1024))
done = relationship(“Done”, back_populates=”task”, cascade=”delete”)
class Done(Base):
__tablename__ = ‘dones’
id = Column(Integer, ForeignKey(“tasks.id”), primary_key=True)
task = relationship(“Task”, back_populates=”done”)
DB接続処理
※/db.py
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker, declarative_base
DB_URL = “mysql+pymysql://root@db:3306/demo?charset=utf8”
db_engine = create_engine(DB_URL, echo=True)
db_session = sessionmaker(autocommit=False, autoflush=False, bind=db_engine)
Base = declarative_base()
def get_db():
with db_session() as session:
yield session