반응형

- Pydantic

 

파이썬 3.7에는 클래스를 훨씬 쉽고 원할하게 생성할 수 있는 편리한 데코레이터인 데이터 클래스가 도입되었다.

 

python에 내장된 dataclass를 이용하여 data를 작성하면 뒤에 validation이라던지 예외처리, 변환등을 다시 해줘야 했기 때문에 다른 라이브러리를 찾아보게 되었다.

 

그렇게 알게 된 녀석이 pydantic이었다.

 

철저한 데이터 검증을 필요로할 때 pydantic을 사용하는것이 많은 도움이된다.

 

지금 내가 사용하고 있는 기능들중 좋다고 느낀점은

 

1. 각 클래스 내부의 값을 정의 할때 진짜 편하다.

2. 정의 한 값들의 입력값들을 정확하게 표현할 때.

3. 그 다음 기능으로 값을 넘겨줄 때 변환하기 편하다.

4. fastapi의 자동문서화(redoc) 기능과 함께 api를 관리할때 더욱 시너지가 났다.

 

 

간단한 예제를 보면

from pydantic import BaseModel,Field


class A(BaseModel):
	no : int
	id : str = Field(alias="Id",example="root",description=" - 사용자 id")

이렇게 A라는 데이터클래스와 no, id라는 값을 정의 했다고 하면

 

1. no -> int , id-> str을 입력으로 받지 않으면 에러가 나온다.

 

2. Field -> 추가한다면 alias, example, description등을 작성할 수 있고, swagger나 fastapi의 자동문서화 기능과 연결하여 편하게 사용할 수 있다.

 

3. docs에 id로 표기되고 내부에서는 Id라는 키값으로 사용하고, 다시 출력할 때에는 id로 출력


4. 그 외에도 많은 기능이 있다.

data=A(no=1,Id='root')
data.dict()

=> {"no":1,"id":"root"}

 

위와같이 사용할 수 있어서. 정말 도움이 많이 되었다. 

앞으로 더 많이 공부 해야겠다고 생각든다.

 

더 많은 기능은 아래의 공홈에서 찾아보길..

 

 

https://pydantic-docs.helpmanual.io/

반응형

'work > web' 카테고리의 다른 글

flask 비동기 처리 해보기 -> FASTAPI 사용하기  (0) 2022.07.26
flask, flask_restx, swagger  (0) 2022.07.22

+ Recent posts