장고에서 시리얼라이저를 사용하다 보니 어떤 필드들이 있는지 궁금해졌다. 그래서 공식 문서를 읽고 필드들을 기술해보려 한다. 공식 문서: https://www.django-rest-framework.org/api-guide/fields/#serializer-fields 많..다 너무 많다. 이만큼 다양한 필드의 직렬화를 제공하는 만큼 시리얼라이저가 강력한 기능임을 알 수 있다. 실제 라이브러리의 serializers.py를 보면 어떻게 매핑되어 사용되고 있는지, 해당 필드 안에선 어떻게 validation check를 하는지 등을 알 수 있다. Serializer fields 시리얼라이저는 원시 값들과 내부 데이터 타입 사이의 컨버팅을 조정하는 역할을 한다. 또한 입력 값의 유효성 검사와 부모 객체 값을 ..
Backend/Django
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..
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..