데이터 분석 기술 블로그

Django에 대하여(33)_DRF - DELETE & PUT 본문

백엔드

Django에 대하여(33)_DRF - DELETE & PUT

데이터분석가 이채은 2024. 5. 21. 17:18

1. DELETE

  • 게시글 데이터 삭제하기
  • 요청에 대한 데이터 삭제가 성공했을 경우는 204 No Content 응답
# articles/views.py

@api_view(['GET', 'DELETE'])
def article_detail(request, article_pk):
    article = Article.objects.get(pk=article_pk)
    if request.method == 'GET':
        serializer = ArticleSerializer(article)
        return Response(serializer.data)
        
    elif request.method == 'DELETE':
        article.delete()
        return Response(status=status.HTTP_204_NO_CONTENT)

DELETE http://127.0.01:8000/api/v1/articles/21/ 응답 확인


2. PUT

  • 게시글 데이터 수정하기
  • 요청에 대한 데이터 수정이 성공했을 경우는 200 OK 응답
# articles/views.py

@api_view(['GET', 'DELETE', 'PUT'])
def article_detail(request, article_pk):
    ...
        
    elif request.method == 'PUT':
        serializer = ArticleSerializer(article, data=request.data)
        # serializer = ArticleSerializer(instance=article, data=request.data)
        if serializer.is_valid(): 
            serializer.save()
            return Response(serializer.data)
        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

PUT http://127.0.01:8000/api/v1/articles/1/ 응답 확인
GET http://127.0.01:8000/api/v1/articles/1/ 수정된 데이터 확인


참고

1. raise_exception