Repolode
fastapi

fastapi/sqlmodel

SQLModel은 Pydantic과 SQLAlchemy를 기반으로 하며 FastAPI와 함께 사용하도록 설계된, Python 클래스로 SQL 데이터베이스를 다루는 라이브러리입니다.

스타
18,447
포크
893
열린 이슈
53
마지막 커밋
6일 전

어떤 프로젝트인가요?

SQLModel을 사용하면 타입 어노테이션을 활용해 Python 클래스로 데이터베이스 테이블을 정의할 수 있습니다. 하나의 클래스가 SQLAlchemy 테이블 모델이자 Pydantic 데이터 모델 역할을 하므로, 데이터베이스 액세스와 요청·응답 검증에 사용할 스키마를 중복해서 작성할 필요가 없습니다.

이 라이브러리는 Pydantic과 SQLAlchemy를 얇게 감싸며 두 라이브러리의 API를 모두 그대로 제공합니다. select 기반 문법으로 쿼리하고 세션을 실행할 수 있으며, 필요하면 내부에서 SQLAlchemy 기능을 사용할 수도 있습니다. 테이블은 표준 SQLModel metadata를 통해 생성하고, 프로젝트 예제에서는 SQLite를 사용합니다.

SQLModel은 FastAPI의 제작자가 만들었으며 FastAPI와 호환되도록 설계되었습니다. pip 또는 uv로 설치할 수 있고, MIT 라이선스로 제공됩니다.

핵심 기능

  • 01타입 어노테이션을 사용하는 하나의 Python 클래스로 테이블과 Pydantic 모델을 정의합니다.
  • 02SQLAlchemy를 기반으로 select 방식의 쿼리와 세션을 제공합니다.
  • 03FastAPI에서 요청 및 응답 모델로 사용할 수 있습니다.
  • 04기반이 되는 SQLAlchemy와 Pydantic의 기능을 모두 사용할 수 있습니다.
  • 05에디터 자동 완성과 인라인 타입 오류 표시를 지원합니다.

활용 사례

  • SQL 데이터베이스에서 데이터를 읽고 쓰는 FastAPI 서비스를 구축합니다.
  • ORM 테이블과 API 스키마 간 중복된 모델 정의를 줄입니다.
  • 기존 SQLAlchemy 애플리케이션을 Pydantic 기반 모델로 전환합니다.

빠른 시작

  1. 1

    공식 설치 가이드에 따라 uv를 설치하세요

  2. 2

    프로젝트에 SQLModel을 추가하세요

    uv add sqlmodel

토픽

자주 묻는 질문

sqlmodel은(는) 무엇인가요?
SQLModel은 Pydantic과 SQLAlchemy를 기반으로 하며 FastAPI와 함께 사용하도록 설계된, Python 클래스로 SQL 데이터베이스를 다루는 라이브러리입니다. SQLModel을 사용하면 타입 어노테이션을 활용해 Python 클래스로 데이터베이스 테이블을 정의할 수 있습니다. 하나의 클래스가 SQLAlchemy 테이블 모델이자 Pydantic 데이터 모델 역할을 하므로, 데이터베이스 액세스와 요청·응답 검증에 사용할 스키마를 중복해서 작성할 필요가 없습니다.
sqlmodel은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
sqlmodel은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
sqlmodel은(는) 아직 유지보수되고 있나요?
활발히 유지보수 중. sqlmodel의 마지막 커밋은 2026년 10월 15일입니다.
sqlmodel은(는) 어디에 사용할 수 있나요?
SQL 데이터베이스에서 데이터를 읽고 쓰는 FastAPI 서비스를 구축합니다. ORM 테이블과 API 스키마 간 중복된 모델 정의를 줄입니다. 기존 SQLAlchemy 애플리케이션을 Pydantic 기반 모델로 전환합니다.
sqlmodel는 어떻게 설치하나요?
공식 설치 가이드에 따라 uv를 설치하세요 프로젝트에 SQLModel을 추가하세요: uv add sqlmodel
sqlmodel은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/fastapi/sqlmodel

요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트