본문 바로가기

개발/장고

[DRF] Serializers - Serializers 클래스 선언하기

반응형
serializers_serializer선언

[DRF] Serializers - Serializers 선언하기

원문 의 내용 중 해석이 애매한 부분은 그대로 표기하였고, 복잡한 문장은 의역하여서 정리하였습니다

간단한 객체를 생성해보자.

우리는 아래에 serializer를 선언할 것인데, 직렬화, 역직렬화 할 수있고 이 데이터는 Comment objects와 일치한다.

serializer를 선언하는 것은 form을 선언하는 것과 매우 비슷하다.


내 마음대로 해설

예제에서는 serializers.Serializer 를 이용하여서, Serializer class를 선언하였다. 대개의 패턴을 보았을 때, 장고 모델이 사용될 때는 ModelSerializer를 사용하는 것이 생산성의 측면에서 훨씬 더 나은 것 같았고, 장고 모델을 쓰지 않는 경우에는 Serializer class를 대개 사용하는 것 같았다.

comment 인스턴스를 흔한 방법으로 직렬화 해보면, 아래와 같다 인스턴스의 각 속성에 직접 접근하여서, dict를 생성한다.

Seirializer 클래스를 이용하면, 아래와 같은 스텝으로 변환이 된다.

아직 봐야할 부분이 많이 남았지만, 일단 윗부분만 보았을 때는, serializer가 존재하는 이유는 직렬화하는 부분에서 사람의 손을 최대한 덜 타고 미리 정의해놓은 serializer 클래스를 통해서 해결하기 위함이라고 생각되어진다.


결론

  • 폼 클래스 생성하는 것과 매우 비슷한 serializer 클래스 생성은 직렬화를 손쉽게 하기위하여서 사용한다.
  • Serializer는 모델을 사용하지 않을 때 사용된다. 모델을 사용하여서 직렬화를 할 때는 ModelSerializer를 사용하자.

문제

  1. 위와 같이 Comment 클래스가 주어졌을 때, 아래 serializer class를 정의하고 실제 comment 인스턴스를 생성하여서 직접 직렬화하여 결과값을 출력하여라.

     

 

반응형