[DRF]Serialize&Deserialize

박민하·2022년 9월 26일
0

DRF

목록 보기
2/9
post-thumbnail

✅ 기본 DRF 처리 과정

  1. DB로부터 데이터를 가져온다.
  2. serialize 한다.
  3. client한테 response 한다.

✅ Serialize(직렬화)

  1. 인스턴스(레코드 객체)를 serialize를 통해서 딕셔너리로 변환한다.
    c0 = Comment.objects.all()[0]
    sr = CommentSerializer(instance=c0)
    sr.data ➝ 직렬화
    type(sr.data): dict
  2. byte string으로 변환한다(json data).
    JSONRenderer().render(data0)
  3. client한테 response 한다.

✅ Deserialize(역직렬화)

  1. byte string type 데이터(json data)를 client로부터 받는다
    json0 = JSONRenderer().render(data0)
  2. 딕셔너리로 변환한다.
    JSONParser().parse(BytesIO(json0))
  3. serialize를 통해 유효성검사
    dsr = CommentSerializer(data=ddata0)
    dsr.is_valid()
  4. 인스턴스(레코드 객체)로 변환한다.
    dsr.validated_data
    instance = Comment(**dsr.validated_data)
  5. DB에 저장한다.
    instance.save()

✅ 정리

/HttpMethod과정
serializeGET(READ)instance → dict → bytes
deserializePATCH/UPDATE(WRITE)bytes → dict → is_valid() → instance
profile
backend developer 🐌

0개의 댓글