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

コメントを残す

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

FastAPI

次の記事

FastAPI SchemaNew!!