serializer 는 배열과 같은 구조를 json 같은 구조로 변환시켜주는 모듈입니다
serializer를 통해서 drf를 이용하기위한 json구조로 변경시켜주는 역할을 합니다
from rest_framework import serializers
from articles.models import Article
class ArticleSerializer(serializers.ModelSerializer):
class Meta:
model = Article
fields = "__all__"
를 통해서 field에 오는 데이터들을 전부 json형식으로 반환을 합니다
그리고 나서 저 변환된 데이터를 통해
class ArticleDetail(APIView):
def get(self, request, article_id, format=None):
article = get_object_or_404(Article, id=article_id)
serializer = ArticleSerializer(article)
return Response(serializer.data)
def put(self, request, article_id, format=None):
article = get_object_or_404(Article, id=article_id)
serializer = ArticleSerializer(article, data=request.data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data)
else:
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def delete(self, request, article_id, format=None):
article = get_object_or_404(Article, id=article_id)
article.delete()
return Response(status=status.HTTP_204_NO_CONTENT)
기존의 함수방식에서는 def를 통해 선언하고 if request.method 를 통해서 get 인지 post인지 구분을 했지만 class형에서는 위와 같은 방식으로 해서 같은 링크 안에서 get put dele를 구현할수있습니다