Content-Type header
= application/json
>>> from django.http import JsonResponse # import from django.http
>>> response = JsonResponse({'foo': 'bar'}) # 첫번째 argument는 dictionary 이어야한다
>>> response.content # result : {"foo": "bar"}'
# dictionary이외를 받을 경우, 두번째 argument를 safe=False로 설정해야한다.
# Otherwise, TypeError발생
>>> response = JsonResponse([1,2,3], safe=False)
>>> response.content # result : [1,2,3]
JsonResponse는 response를 커스터마이징 하여 전달하고 싶을때, http status code에 더하여 메세지를 입력해서 전달할 수 있다.
이 메세지는 프론트엔드 개발자가 보게 되는데, 실무에서는 프론트엔드 개발자와 이미 약속한 메세지를 표시하게 된다. 딱히 약속한 메세지가 없는경우는 단순히 HttpResponse
로 status code만 전달해주어도 상관없다.
메세지를 입력할 경우 주의점은, 프론트엔드 개발자가 에러 메세지를 확인하기 용이하도록 규칙을 정하는 것이다.
대표적으로 space를 쓰지않고 underscore를 사용하거나, value값은 대문자로 쓰는것이 있다.
또한, 보안상 JsonResponse의 메세지 내용은 너무 자세하게 적지 않는것이 좋다. (that would be too hacker friendly..)
참조링크:
https://docs.djangoproject.com/en/2.2/ref/request-response/#jsonresponse-objects
감사합니다.