본문 바로가기

개발/Python

[Python] sqlalchemy

- 외래키 설정

from sqlalchemy import ForeignKey

class User(Base):
    __tablename__ = 'user'
    id = db.Column(db.Integer, primary_key=True)

class EventUser(Base):
    __tablename__ = "event_user"
    user_id = db.Column(db.Integer, ForeignKey("user.id"), nullable=False) 

 

- row > 딕셔너리(json) 변환 및 특정 데이터 삭제

class User(Base):
    __tablename__ = "user"
    username = db.Column(db.String(100), unique=True, nullable=False)
    password = db.Column(db.String(100), nullable=False)
    def as_dict(self):
        d = {c.name: getattr(self, c.name) for c in self.__table__.columns}
        del d["password"]
        return d
        
user = User(username=username, password=hashed_password)
db.session.add(user)
db.session.commit()
return user.as_dict()

 

- UniqueConstraint

class EventUser(Base):
    __tablename__ = "event_user"
    user_id = db.Column(db.Integer, ForeignKey("user.id"), nullable=False)
    date = db.Column(db.String(8), nullable=False, comment="대상 날짜")
    __table_args__ = (db.UniqueConstraint("user_id", "date"),)