더북(TheBook)

3. SQLModel 모델 정의 예시

SQLModel 모델은 Pydantic 모델을 정의하는 것에 가까운 방식으로 정의합니다.

파이썬 예시 코드

from sqlmodel import SQLModel, Field, Boolean
from typing import Optional
from datetime import datetime

class User(SQLModel, table=True):
    __tablename__ = "users"
    
    id: Optional[int] = Field(default=None, primary_key=True)
    username: str
    email: EmailStr = Field(max_length=128)
    is_host: bool = Field(default=False, sa_type=Boolean)

차이점은 User 클래스를 정의할 때 table=True 인자를 전달하여 Pydantic 모델처럼 생긴 이 클래스가 테이블에 매핑되는 ORM 모델이라는 것을 선언합니다. 이제 이 모델은 Pydantic의 데이터 검증 기능을 동일하게 수행하면서도 SQLAlchemy ORM 객체로서 데이터베이스 계층에서 사용하게 됩니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.