less than 1 minute read

  • JsonResponse

    HttpResponse 의 서브 클래스

    JSON-encoded response 를 생성할 수 있게 해줌

    Content-Type header 의 default는 application/json

    response 를 커스터마이징 하여 전달하거나 http status code 에 메세지를 더하여 보낼 떄 사용함

    • 사용법

      Django 에서 ORM 으로 DB 를 다룰 때 원하는 DB 데이터는 대부분 객체 형태로 조회됨

      객체를 model_to_dict 같은 메서드나 파싱 함수를 만드는 과정 등을 통해 Python 의 자료형으로 변경해줌

      JsonResponse 메서드 사용해 return

    • 장점

      파싱 함수를 만들 수 있어서 자료를 직접 다룰 수 있음

    • 단점

      파싱 함수 만들기가 번거롭고 코드가 길어짐(장점이기도 함)

  • serializers.serialize

    모델(객체)를 원하는 데이터 타입으로 데이터 직렬화 시켜줌

    • 사용법

      ORM 으로 DB 조회

      조회된 값 serialize 로 직렬화

      대상은 이터레이터만 가능

      인자에 데이터 형태, 원하는 필드 값 설정(선택)

      HttpResponse 로 return

      • 장점

        직렬화 시키기 간단해짐

        Query Set 같이 이터레이터가 구현된 자료구조에 적용하기 맞음

      • 단점

        추가적인 데이터 조작이 힘듦 (파싱 함수 만들어서 데이터 조작 가능)

        이터레이터만 가능함 (개체 List에 넣어서 사용 가능하지만 list 안에 담기기에 원하는 자료구조 하기 번거로움)

  • json

    Python 의 내장 모듈

    직렬화, 역직렬화 에 대한 다양한 메서드 있음

    • 장점

      내장 모듈이라 Python 의 환경 어디든 가능

    • 단점

      객체형 구조는 바로 파싱하지 못하므로 python 의 자료형으로 파싱해줘야함