본문 바로가기

전체 글141

DRF Serializer Serializer는 아래와 같은 용도로 사용됐다.get:  조회할 필드를 정하는 스키마의 역할post, put:  생성이나 수정할때 입력받을 formvalidation: 데이터 유효성 검사그냥 serializer를 사용할 경우, model에서 필드를 정의할때 입력한 부분들을 다시 입력해야 하는 번거러움이 있다. 또한, create, update매서드를 직접 만들어야 한다. 이를 해결하기 위해 ModelSerializer를 사용한다.  [** ModelSerializer **]그냥 serializer를 사용할 경우, model에서 필드를 정의할때 입력한 부분들을 다시 입력해야 하는 번거러움 존재또한, create, update매서드를 직접 만들어야 함model의 필드를 자동으로 가져옴validator를 .. 2024. 7. 18.
DRF APIView 앞서 Django Rest Framework를 통해 GET, POST, PUT, DELETE를 다뤘다.모두 함수를 만들어 진행했고, @api_view 데코레이터를 통해 request method를 적용시켰다.함수 안에 if, else등과 같은 코드들이 많이 들어감을 알 수 있었다. 이것을 좀 더 보기 좋게 구조화 시키기 위해 APIView를 활용해 클래스화 한다.  [** APIView **]django.rest_framework.APIView 를 상속클래스 안에 request method에 해당하는 함수들을 만듬세부적인 변수가 필요할 경우에는 get_object()함수를 만들어 적용(관습)#---------- categories/views.py 변경 전@api_view(['GET', 'PUT', 'DE.. 2024. 7. 18.
DRF UPDATE * DELETE [** UPDATE **]기본 구조는 post와 동일method=putserializer를 만들때 기존의 데이터와, 입력받은 데이터를 모두 넣어줌수정의 특징상 부분 수정이 있을 수 있으므로 partial=True로 지정수정 후 serializer.save()를 실행하면 뒤에서 update매서드가 호출됨#---------- categories/serializers.pyclass CategorySerializer(serializers.Serializer): pk = serializers.IntegerField(read_only=True) name = serializers.CharField() kind = serializers.ChoiceField( choices=C.. 2024. 7. 18.
DRF POST & validate & save [** post ** ]DRF는 기본적으로 GET요청을 갖는다.post, put, delete 등 다른 method를 사용하기 위해서는 아래와 같이 사용한다.@api_view(['GET', 'POST])def all_categories(request): if request.method == 'GET': all_category = Category.objects.all() serializer = CategorySerializer(all_category, many=True) return Response(serializer.data) elif request.method == 'POST': return Response({'.. 2024. 7. 18.