본문 바로가기

drf25

5. ViewSets 라우팅이 요청에 사용할 컨트롤러를 결정하면, 컨트롤러는 요청을 이해하고 적절한 출력을 생성할 책임이 있습니다. DRF를 사용하면 VeiwSet라고 하는 단일 클래스의 연관된 viewset에 대한 논리를 결합할 수 있습니다. 다른 프레임워크에서는 개념적으로 유사한 것으로는 'Resources' 또는 'Controllers'를 찾을 수도 있습니다. ViewSet 클래스는 단순히 .get() 또는 .post()와 같은 메서드 핸들러를 제공하지 않고 .list() 및 .create()과 같은 작업을 제공하는 클래스 기반 View의 한 유형입니다. ViewSet의 메서드 핸들러는 as_view() 메서드를 사용하여 View를 완료하는 시점에만 해당 작업에 바인딩 됩니다. 일반적으로, urlconf의 viewSet.. 2021. 6. 26.
4-2 Generic Views (Mixin,Concrete) Mixins mixin 클래스는 기본 view 동작을 제공하는 데 사용되는 작업을 제공합니다. 클래스의 Mixin은 .get() 및 .post()와 같은 핸들러 메서드를 직접 정의하는 대신 action 메서드를 제공합니다. 이것은 행동을 보다 유연하게 구성할 수 있게 해줍니다. minxin클래스는 rest_framework.mixins에서 import할 수 있습니다. ListModelMixin 쿼리셋을 list로 구현해주는 .list(request, *args, **kwargs)메서드를 제공합니다. 쿼리셋이 채워지면 쿼리셋의 serializer된 표현을 body의 response로 200 OK response를 반환합니다. response 데이터는 선택적으로 페이징될 수 있습니다. CreateModelM.. 2021. 6. 23.
4-1. Generic Views (GenericAPIView) Save and deletion hooks: django의 일반적인 views는 일반적인 사용패턴의 shortcut으로 개발되었습니다. view 개발에서 발견되는 특정 공통 idioms와 패턴을 추출하여 사용자가 반복할 필요없이 데이터의 공통된 view를 빠르게 작성할 수 있도록 합니다. CBV(Class Based views)의 주요 장점중 하나는 재사용 가능한 동작의 일부를 구성할 수 있는 방법입니다. DRF는 일반적으로 사용되는 패턴을 제공하는 여러개의 미리 작성된 views를 제공하여 이를 활용할 수 있습니다. DRF에서 제공하는 일반적인 views를 사용하면 데이터베이스 모델에 가깝게 매핑되는 API View를 빠르게 작성할 수 있습니다. 일반적인 view가 API의 요구 사항에 맞지 않는 경우.. 2021. 6. 7.
3. DRF-Views CBV(Class-based Views) Django에서 CBV기반의 View는 오래된 스타일을 벗어난 좋은 출발입니다. - Reinout van Rees DRF에서 Django의 View 클래스를 Subclass인 APIView 클래스를 제공합니다. APIView 클래스는 다음과 같은 방법으로 일반적인 View 클래스와는 다릅니다. 핸들러 메서드에 전달된 Request Django의 HttpRequest 인스턴스가 아니라 DRF의 Request 인스턴스가 됩니다. 핸들러 메서드는 Django의 HttpResponse 대신 DRF의 Response를 반환할 수 있습니다. View는 콘텐츠 협상을 관리하고 Response에 대한 올바른 렌더러를 설정합니다. APIException는 예외가 발생될 때 적절한.. 2021. 6. 6.
2. DRF-Response Response 기본 HTTPResponse개체와 달리 TemplateResponse 개체는 response을 계산하기 위해 View에서 제공한 컨텍스트의 세부 정보를 유지합니다. Response의 최종 출력은 필요할 때까지 계산되지 않으며 Response 프로세스 후반에 계산됩니다. DRF는 클라이언트 요청에 따라 여러 content-type으로 렌더링될 수 있는 content를 반환할 수 있는 Response 클래스를 제공하여 HTTP 콘텐츠 협상을 지원합니다. Response 클래스는 Django의 SimpleTemplateResponse를 Subclass화 합니다. Response 객체는 네이티브 파이썬 요소로 구성되어야 하는 데이터로 초기화 됩니다. Response클래스를 사용할 필요는 없고, .. 2021. 6. 5.
1. DRF-Requests Requests DRF는 Request클래스를 좀 더 표준적인 HttpRequest로 확장합니다. 이것을 통해 좀 더 유연하게 request parsing과 request authentication이 가능합니다. Request Parsing DRF에서 Request 객체는 일반적으로 양식 데이터를 처리하는 것과 동일한 방식으로 JSON 데이터 또는 다른 미디어 유형을 사용하여 요청을 처리할 수 있는 form-data를 제공해줍니다. .data request.data 는 request body에 파싱된 콘텐츠들을 반환해줍니다. 이것은 request.POST의 표준과 유사합니다. 그리고 request.FILES의 다음과 같은 속성을 제외합니다. 모든 파싱된 콘텐츠들은 파일과 파일이 아닌 입력을 포함합니다. .. 2021. 5. 30.