DRF(Django Rest Framework)란 Django 안에서 RESTful API 서버를 쉽게 구축할 수 있도록 도와주는 오픈소스 라이브러리다. Django REST framework를 사용하는 이유는 아래와 같다.
장고 DRF 실습을 위해 가상환경을 만들고, 아래 프로그램들을 사전에 설치합니다.‘rest_framework’python manage.py createsuperuser2-1) Instance -> Serialize하기2-2) Deserialize하기2-3) Serial
본 사례에서는 article 정보를 CRUD하는 함수형 뷰를 작성하려고 한다.엔드포인트는 인자로 article 객체에 대한 pk 정보가 필요한가, 필요하지 않은가로 판단해 2가지로 만들고자 한다. 이 때 pk 정보가 필요 없는 List, Create를 한 가지 View
앞서 함수형 뷰로 작성한 것과 동일한 기능을 Class형 뷰로 짜 본 사례이다.엔드포인트로 호출할 대상이 달라지는 것 외에는 앞의 함수형 사례와 달리 달라지는 부분은 없다.REST 프레임워크는 Django의 View 클래스의 하위 클래스로 APIView 클래스를 제공한
대부분 REST 프레임워크에서 유효성 검사를 처리하는 경우, 기본 필요 유효성 검사에 의존합니다. 만약 customized된 유효성 검사를 하고 싶은 경우 serializer에서 명시적인 validator 메소도를 작성하면 됩니다.serializer.py -> clas
이전 사례에서 우리는 Serializer를 만들 때, 각 필드를 다 정의를 해 주어야 했기에 마치 모델을 다시 한 번 작성하는 것 같은 불편함이 있었다. ModelSerializer는 이런 불편함을 해결해 준다. ModelSerializer는 아래와 같은 편리함을 제
CRUD 과정은 대부분 비슷해서 표준화된 부분이 많이 있어, CRUD를 편안하게 해 주는 많은 메소드(코드)들이 이미 존재함GenericView에서 기본적인 뼈대가 되는 기능을 제공을 하고, Mixin은 구현하고자 하는 특정 기능(list, delete, create,
코드 비교 GenegicAPIView + Mixin 상속한 ClassViewConcreteView ClassView
만약, 퍼미션을 세팅하지 않으면 누구나 애플리케이션에 접근할 수 있다. 이 디폴트 상태의 코드는 아래와 같다.만약 애플리케이션에 대해 단지 인증된 사용자만 접근하게 하려면, settings.py에서 아래 코드를 추가해 주면 된다.setting.py하지만 통상 웹서비스에
퍼미션과 마찬가지로 settings.py에서 페이지네이션을 글로벌로 설정할 수 있다.settings.py페이지 적용 전에 http://localhot/api/ebooks에 가면 아래와 같은 모습으로 ebook의 전체 리스트가 한 번에 다 호출된다.페이지네이션
아래 사례는 Udemy의 "The complete Guide to Django Restframework and Vue JS" 강의 중 Section4 의 : Django REST Framework - Level Three 내용으로서 UserProfile API 작성사례
장고 DRF에서 회원가입, 로그인 기능을 제공해주는 라이브러리가 django-rest-auth이다. 이번 장에서는 django-rest-auth를 이용해서 로그인과 회원가입 기능을 구현하는 과정을 살펴보도록 하겠다.
Django REST framework는 단일 모델 클래스에 관련 있는 view들의 집합을 위해 ViewSet 기능을 제공합니다. 하나의 모델을 가지고 list, detail 각각의 API를 만들어 보면, 일부 사항을 제외하고는 동일한 로직으로 처리가 됨을 알 수 있습
이전에 작성한 ProfileStatusViewSet 는 전체 리스트를 다 뿌려주는 코드였다. 이제는 전체도 보여주지만, username이 parameter로 전달될 때는 해당 username의 profile status만 보여지도록 코드를 수정해 보자.이를 위해 get
아래 코드가 왜 작동하는지 이해할려면, get_object 메소드가 어떻게 작동하는지 알아야 함.
참조관계를 갖는 다른 모델의 데이터를 사용해야 할 경우, 아래와 같이 참조할 모델의 Serializer를 가져와서 사용할 수 있다. 만약, nested representation이 반드시 필요한 경우가 아니라면, required=False를 설정하면 된다.만약, 리스트