728x90
반응형

SQLModel은 파이썬 객체를 사용한, 파이썬 코드를 통해 SQL 데이터베이스와 상호작용하는 라이브러리입니다. 이것인 직관적이고, 쉽게 사용할 수 있고, 호환성이 높고, 견고하게 설계되었습니다.

 

SQLModel은 파이썬의 자료형 어노테이션을 기반으로 하며, PydanticSQLAlchemy를 통해 작동합니다.

 

중요한 기능은 다음과 같습니다:

 

  • 직관적 사용: 뛰어난 편집기 지원을 받을 수 있습니다. 모든 곳에서 완성 기능을 사용할 수 있습니다. 디버깅하는데 더 적은 시간이 소요됩니다. 사용하고 배우기 쉽게 설계되었습니다. 문서를 읽는데 더 적은 시간이 소요됩니다.
  • 쉬운 사용: 합리적인 기본값을 가지며 작성하는 코드를 단순화하기 위해 많은 작업을 밑단에서 수행합니다.
  • 호환성: FastAPI, Pydantic, 그리고 SQLAlchemy와 호환되게 설계되었습니다.
  • 확장 가능성:  SQLAlchemy와 Pydantic의 모든 기능을 기반으로 하여 사용 가능합니다.
  • 단순함: 코드 중복을 최소화합니다. 단일 자료형 어노테이션은 많은 작업을 수행합니다. SQLAlchemy와 Pydantic의 모델을 복제할 필요가 없습니다.

 

FastAPI 속 SQL 데이터베이스

 

SQLModel은 FastAPI와 동일한 제작자에 의해 만들어져, FastAPI 애플리케이션 속 SQL 데이터베이스와 쉽게 상호작용할 수 있게 설계되었습니다. 😁

 

SQLAlchemy와 Pydantic을 결합하여 작성한 코드를 최대한 단순화하며, 코드 중복을 최소한으로 줄여주면서도, 최고의 개발자 경험을 가능하게 합니다.

 

SQLModel은, 사실, PydanticSQLAlchemy 위에 얹어진 얇은 층으로, 그것들과 호환될 수 있게 신경써서 설계되었습니다.

 

요구 사항

최신 및 현재 지원되는 파이썬 버전 (지금, 파이썬은 3.6이상의 버전을 지원합니다) 이 요구됩니다.

 

SQLModelPydanticSQLAlchemy를 기반으로 하기 때문에, 그것들을 필요로 합니다. 둘 다 SQLModel을 설치할 때 자동으로 설치됩니다.

 

설치

 

예시

데이터베이스, SQL, 그리고 다른 모든 것에 대한 소개는 SQLModel 문서를 참고하시면 됩니다.

 

여기 간단한 예시가 있습니다.

 

SQL 테이블

다음과 같은 필드를 가진 hero 라는 이름의 SQL 테이블이 있다고 상상해봅시다:

 

  • id
  • name
  • secret_name
  • age

 

그리고 다음과 같은 데이터를 저장하기를 원합니다:

 

 

SQLModel의 모델 생성

이제 다음과 같이 SQLModel의 모델을 생성할 수 있습니다:

 

 

Hero 라는 클래스는 파이썬 코드로 작성된 SQL 테이블과 동일한 SQLModel의 모델입니다.

 

그리고 각각의 클래스 어트리뷰트는 각각의 테이블 열과 동일합니다.

 

행 생성

이제 테이블 각각의 행을 모델의 인스턴스로써 생성합니다:

 

 

이렇게 하면, 테이블을 나타내는 클래스인스턴스와 함께 기존의 파이썬 코드를 사용할 수 있으며, 그런 방식으로 SQL 데이터베이스와 통신할 수 있습니다.

 

편집기의 지원

모든 것은 최고의 편집기 지원과 함께 최고의 개발자

경험이 가능하게 설계 되었습니다.

 

여기에는 자동 완성이 포함됩니다:

 

 

그리고 인라인 에러도 포함됩니다:

 

 

데이터베이스 저장

빠르게 튜토리얼을 따라하며 SQLModel에 관한 더 많은 것들을 배울 수 있지만, 지금 당장 어떻게 이 모든 것들을 작성하고 데이터베이스에 저장하는지 맛보고 싶다면, 아래와 같이 작성할 수 있습니다:

 

 

이것은 3명의 영웅과 함께 SQLite 데이터베이스를 저장합니다.

 

데이터베이스에서 조회

이제 아래 예시와 같이, 동일한 데이터베이스에서 조회를 위한 쿼리를 작성할 수 있습니다:

 

 

모든 곳에서의 편집기 지원

SQLModel은 심지어 데이터베이스에서 데이터를 조회한 뒤에도, 당신에게 최고의 개발자 경험과 편집기의 지원을 제공하게 신중히 설계되었습니다.

 

 

SQLAlchemy와 Pydantic

Hero 클래스는 SQLModel의 모델입니다.

 

그러나 동시에, SQLAlchemy 모델이기도 합니다 ✨. 따라서, 이를 결합하여 다른 SQLAlchemy 모델과 함께 사용하거나, SQLAlchemy를 사용한 애플리케이션을 쉽게 SQLModel로 마이그레이션 할 수 있습니다.

 

또한 동시에, Pydantic 모델이기도 합니다 . 코드 중복을 피하면서 모든 데이터 모델을 정의하기 위해 상속을 사용할 수 있습니다. 따라서 FastAPI와 함께 사용하기 매우 쉽습니다.

 

 

라이선스

이 프로젝트는 MIT 라이선스 조건을 바탕으로 라이선스가 부여됩니다.

 


원문

https://sqlmodel.tiangolo.com/

 

SQLModel

SQLModel SQLModel, SQL databases in Python, designed for simplicity, compatibility, and robustness. Documentation: https://sqlmodel.tiangolo.com Source Code: https://github.com/tiangolo/sqlmodel SQLModel is a library for interacting with SQL databases from

sqlmodel.tiangolo.com

 

728x90
반응형