티스토리 뷰

반응형

Serializers을 왜 쓸까? 

 클라이언트와 서버간 통신에서 데이터 타입은 참 다양합니다. 대표적으로는 json이 있고, 그 이외에도 xml, yml 등 다양한 데이터 타입이 있습니다. Serializers는 이러한 데이터들을 파이썬 환경에 맞게 바꾸거나 클라이언트에 맞게 보내는 역할을 합니다.

 

이 때 Serializer는 클라이언트에게 보내는 작업을 합니다.( 자세히 말하자면 Serializers.py는 serializer 과 deserializer 둘 다 작업을 합니다. 그 중 serializer를 설명하겠습니다.)

 

 

공식 문서를 보면 다음과 같이 설명되어 있습니다.

 

Serializing objects(클라이언트에게 보낼 때)

Serializer는 우리가 Django 에서 사용하는 파이썬 객체나 queryset 같은 복잡한 객체들을 REST API에서 사용할 json 과 같은 형태로 변환해주는 어댑터 역할을 한다.

serializer = CommentSerializer(comment)
serializer.data
# {'email': 'leila@example.com', 'content': 'foo bar', 'created': '2016-01-27T15:17:10.375877'}

 

Deserializing objects(클라이언트로부터 데이터를 받을 때)

 

import io
from rest_framework.parsers import JSONParser

stream = io.BytesIO(json)
data = JSONParser().parse(stream)
serializer = CommentSerializer(data=data)
serializer.is_valid()
# True
serializer.validated_data
# {'content': 'foo bar', 'email': 'leila@example.com', 'created': datetime.datetime(2012, 08, 22, 16, 20, 09, 822243)}

 

반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함