반응형
SQLModel은 FastAPI의 창시자 Sebastián Ramírez가 개발한 ORM 라이브러리로,
Pydantic의 데이터 유효성 검사와 SQLAlchemy의 데이터베이스 ORM 기능을 통합한 최신 기술입니다.
코드가 간결하면서도 타입 안정성이 높아, API 개발과 DB 연동을 한 번에 처리하기에 매우 적합합니다.
📌 SQLModel이란?
SQLModel은 pydantic의 모델링 방식과 sqlalchemy의 DB 연동 기능을 통합한 ORM입니다.
타입 힌트를 그대로 유지하면서 SQL 쿼리를 작성할 수 있으며, SQLite 등 다양한 DB 백엔드와 호환됩니다.
🧪 예시 프로젝트: 도서 정보 CRUD API
📁 프로젝트 구조
book_api/
├── models.py # SQLModel 모델 정의
├── main.py # DB 생성 및 CRUD 함수
└── test_main.py # 테스트 코드
반응형
models.py
from sqlmodel import SQLModel, Field
from typing import Optional
class Book(SQLModel, table=True):
id: Optional[int] = Field(default=None, primary_key=True)
title: str
author: str
main.py
from sqlmodel import create_engine, Session, select
from models import Book, SQLModel
engine = create_engine("sqlite:///database.db")
# DB 테이블 초기화
def init_db():
SQLModel.metadata.create_all(engine)
# 도서 추가
def add_book(title: str, author: str):
with Session(engine) as session:
book = Book(title=title, author=author)
session.add(book)
session.commit()
# 도서 조회
def get_books():
with Session(engine) as session:
return session.exec(select(Book)).all()
test_main.py
from main import init_db, add_book, get_books
def test_book_crud():
init_db()
add_book("1984", "George Orwell")
books = get_books()
assert any(b.title == "1984" for b in books)
🔧 기술 스택 및 레이아웃
- Python 3.10+
- SQLModel
- SQLite
- Pydantic 기반 모델링 + SQLAlchemy ORM
- 단일 파일 테스트 가능
🔁 유사 기술
- SQLAlchemy: 가장 널리 쓰이는 ORM
- Peewee: 경량 ORM
- Tortoise ORM: async 지원 ORM
- Django ORM: Django 내장 ORM
🏷️ 핵심 키워드 10개
- SQLModel
- Pydantic ORM
- SQLAlchemy
- FastAPI 호환
- SQLite
- 타입 기반 DB 모델
- CRUD
- 데이터베이스 유효성
- 모델 통합
- Python ORM
반응형
'코딩취미 > Python' 카테고리의 다른 글
| Structlog - Python 로깅의 현대적인 대안 (0) | 2025.08.17 |
|---|---|
| Litestar CLI - 구조화된 API 프로젝트 생성을 위한 최신 툴 (0) | 2025.08.17 |
| Bunnet - MongoDB ODM for Beanie를 대체할 새로운 선택지 (0) | 2025.08.16 |
| Robyn - 초고속 비동기 Python 웹 프레임워크 (0) | 2025.08.16 |
| pgPT - PostgreSQL 기반의 자연어 쿼리 프레임워크 (0) | 2025.08.16 |