[python] SQLAlchemy-Utils의 JSON 타입과 관련된 함수 알아보기

SQLAlchemy-Utils는 SQLAlchemy를 확장하여 유용한 기능과 유틸리티 함수들을 제공하는 패키지입니다. 이를 통해 JSON 타입과 관련된 함수들에 대해 알아보겠습니다.

설치

먼저, SQLAlchemy-Utils를 설치합니다.

pip install sqlalchemy-utils

그리고 JSON 타입을 사용하기 위해 json 모듈도 함께 import 합니다.

import json

JSON 타입 다루기

SQLAlchemy-Utils를 사용하여 JSON 타입의 데이터를 다루는 방법은 다음과 같습니다.

crated_at, updated_at 컬럼 추가

먼저, JSON 데이터를 저장할 테이블에 created_atupdated_at 컬럼을 추가합니다. 이는 데이터가 생성 또는 업데이트된 시간을 추적하기 위한 용도입니다.

from sqlalchemy_utils import JSONType, Timestamp

class MyModel(Timestamp):
    __tablename__ = 'my_model'
    id = sa.Column(sa.Integer, primary_key=True)
    data = sa.Column(JSONType)

JSON 데이터 저장

JSON 데이터를 저장하는 예시입니다.

data = {'name': 'John', 'age': 30, 'city': 'New York'}
my_model = MyModel(data=data)
session.add(my_model)
session.commit()

JSON 데이터 조회

JSON 데이터를 조회하는 예시입니다.

my_model = session.query(MyModel).first()
print(my_model.data['name'])
# Output: John

JSON 데이터 업데이트

JSON 데이터를 업데이트하는 예시입니다.

my_model = session.query(MyModel).first()
my_model.data['age'] = 31
session.commit()

결론

JSON 타입의 데이터를 SQLAlchemy 모델에서 다루기 위해 SQLAlchemy-Utils의 JSON 타입을 사용할 수 있습니다. 위에서 설명한 함수들을 활용하여 효율적으로 JSON 데이터를 다룰 수 있습니다.

더 많은 기능과 유틸리티 함수에 대해서는 SQLAlchemy-Utils 공식 문서를 참고하세요.