Create와 Perform_Create 코드로 보기 장고의 ViewSet은 기본적으로 GenericAPIView라는 클래스를 상속 받기 때문에 'list', 'create', 'retrieve'와 'update', 'destory' 메소드를 자동으로 생성해준다. 여기서 create는 RestAPI의 post 메소드와 매칭되어 생성되는데 코드로 보면 아래와 같다. def create(self, request, *args, **kwargs): serializer = self.get_serializer(data=request.data) serializer.is_valid(raise_exception=True) self.perform_create(serializer) headers = self.get_succ..
Backend

http -a admin:password123 POST http://127.0.0.1:8000/snippets/ code="print(789)" { "id": 1, "owner": "admin", "title": "foo", "code": "print(789)", "linenos": false, "language": "python", "style": "friendly" } Snippet 모델 추가 작성 모델에 내용 추가 models.py의 Snippet 모델에 작성 User와 연결할 uwner ForeignKey와 하이라이트 추가 owner = models.ForeignKey('auth.User', related_name='snippets', on_delete=models.CASCADE) highligh..
Class-based Views Class-based Views란? APIView 클래스를 사용해 구현한 뷰 문법이 훨씬 간단하고 명료 해짐 mixin을 사용하면 crud 함수까지 자동으로 상속받아 구현하지 않아도 됨 Class-based Views 작성 from snippets.models import Snippet from snippets.serializers import SnippetSerializer from django.http import Http404 from rest_framework.views import APIView from rest_framework.response import Response from rest_framework import status class SnippetLis..

Request, Response 객체, Status 모듈 Request 객체 REST framework의 Request 객체는 HttpRequest 객체를 상속 받고 있음 더 유연한 request 파싱을 제공 코어 기능은 request.data임 request.post는 오직 POST에서만 있음 request.POST # Only handles form data. Only works for 'POST' method. request.data # Handles arbitrary data. Works for 'POST', 'PUT' and 'PATCH' methods. Response 객체 클라이언트에게 요청 받은 타입으로 리턴함 return Response(data) # Renders to content t..