반응형
sqlmodel 의 Field, SQLModel, JSON, Column 를 imort
from sqlmodel import Field, SQLModel, JSON, Column
friends_id_list 와 같이
python data type 은 dict
SQLModel Field 는 sa_column=Column(JSON) 으로.
class User(SQLModel, table=True):
__tablename__ = 'user'
user_id: str = Field(primary_key=True)
friends_id_list: dict = Field(sa_column=Column(JSON))
reg_date: Optional[datetime] = Field(default_factory=datetime.now)
class Config:
arbitrary_types_allowed = True
아래와 같이 입력!
user = User()
user.user_id = "100"
user.friends_id_list = ["111","222","333","444"]
with Session(self.engine) as session:
session.add(user)
session.commit()
추가
저장되는 데이터 형식에 따라 SQLModel 의 field type 을 맞춰야 합니다.
특히 조회할 때 리턴을 response_model 로 했다면, validation 오류가 발생합니다.
mysql 의 json 컬럼에 저장되는 데이터가 list 일 때와 dict 일 때 아래와 같이 타입을 잘 작성해야합니다.
# [1, 2, 3, 4]
friends_id_list: list = Field(sa_column=Column(JSON))
# {"name": "bryan", "greet": "hello"}
friends_id_list: dict = Field(sa_column=Column(JSON))
728x90
반응형
'Python' 카테고리의 다른 글
[DeepL] python api 사용하기 (4) | 2023.09.24 |
---|---|
[Python] package name 에 하이픈(-)이 있을 때 import 하는 방법 (0) | 2023.09.21 |
[FastAPI] Html 띄우기 (1) | 2023.09.15 |
[tiangolo/SqlModel] where 절 사용하기 (0) | 2023.09.06 |
[FastAPI] 비밀번호 암호화, JWT 사용하기 (0) | 2023.08.15 |
댓글