강의 정리(84)
-
DRF Pagination
DRF에서 기본 지원하는 페이징 방식 PageNumberPagination page/page_size 인자를 통한 페이징 처리 LimitOffsetPagination offset/limit 인자를 통한 페이징 처리 PageNumberPagination page_size 미지정 상황을 위해, 디폴트 지정이 필요 settings.py 내 REST_FRAMEWORK = {"PAGE_SIZE": 10} 를 통해 전역 설정 PageNumberPagination을 상속받아 page_size 설정 from rest_framework.paginationimport PageNumberPagination class MyPageNumberPagination(PageNumberPagination): page_size = 10..
2022.07.14 -
DRF Authentication과 Permission
인증 유입되는 요청을 허용 / 거부하는 것을 결정하는 것이 아니라, 단순히 인증 정보로 유저를 식별하는 것입니다. Authentication : 유저 식별(ex: 업주인지 고객 유저인지) Permissions : 유저의 리소스에 대한 각 요청에 대한 허용/거부(ex: 특정 유저만 글 쓰기) Throttling : 특정 유저가 일정 시간 동안에 허용할 최대 요청 횟수(ex: 글 쓰기 제한) 인증 프로세스 유저 식별 해당 유저가 리소스에 대한 어떤 액션을 취할 때 허용할 것인지, 거부할 것인지 허용된다면, 특정 리소스에 대한 요청 횟수를 넘어서지 않는지 인증 처리 순서 매 요청 시마다 APIView의 dispatch(request) 호출 APIView의 initial(request) 호출 APIView의 p..
2022.07.14 -
DRF Serializer를 통한 유효성 검사 및 저장
Serializer의 생성자 Serializer는 Django Form과 컨셉 / 사용법이 유사하나, 생성자 차이 # django/forms/forms.py class BaseModelForm: def __init__(self, data=None, files=None, auto_id='id_%s', prefix=None, initial=None, error_class=ErrorList, label_suffix=None, empty_permitted=False, instance=None, use_required_attribute=None): class Form(BaseForm): pass Form에서는 인자로 data와 files, instance를 받는다. # rest_framework/serialize..
2022.07.14 -
From과 Serializer 관점에서 DRF 비교
Serializer / ModelSeializer 데이터 변환 / 직렬화 지원 querySet / Model객체 Native Python 데이터타입, JSON/XML Django의 Form / ModelForm과 유사 유효성 검사와 유효성 검사에 통과한 값들을 데이터베이스에 저장 시켜줌 Serializer는 뷰 응답을 생성하는 데에 범용적이고 강력한 방법을 제공 ModelSerializer는 Serializer 생성을 위한 Shortcut 특징 비교 Form / ModelForm HTML 입력폼을 위한 입력에 대한 유효성 검사 주로 Create / Update에 대한 처리에서 활용 → 장고 admin에서 활용 CreateView / UpdateView CBV를 통한 뷰 처리 → 단일 뷰 Serialize..
2022.07.13 -
DRF ViewSet과 Router
REST의 규칙에 우리는 맞춰 코딩을 하고있음을 인지하는게 매우 중요하다. ViewSet은 REST의 반복적인 코딩 패턴을 줄여준다. 우리는 일반적으로 REST API를 구현할 때 모델을 기준으로 List와 Detail URL에 대한 API를 구현한다. 이 때 List API는 GET, POST 메소드를 구현하며 Detail API 는 GET, PUT, DELETE메소드를 구현한다. 이 각 2개의 URL별로 모두 5개의 메소드 구현을 REST의 반복되는 일관된 패턴으로 볼 수도 있을 것이다. DRF에서는 모델을 기준으로 하나의 ViewSet으로 묶어서 위에서 언급한 패턴을 한방에 구현할 수 있다. ViewSet에 queryset과 serializer를 지정만 해주고 Router클래스로 url에 추가만 해..
2022.07.13 -
DRF mixins 상속을 통한 APIView
출처 : https://www.inflearn.com/course/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EC%9E%A5%EA%B3%A0-%EC%9B%B9%EC%84%9C%EB%B9%84%EC%8A%A4/dashboard 장고(Django)를 배우기 시작한 입문자이시거나, 또는 배우고 싶은 생각이 있으신 분은 위 출처의 강의를 적극 추천드립니다!!! Mixin : 전통적인 다중 상속을 클래스의 부분 부분을 쪼개어 조립하는 것 DRF에서 지원하는 mixins 파이썬에서는 mixin이라는 문법은 따로 없고, 상속 문법을 사용하여 구현된다. 믹스인 클래스는 직접적으로 사용하는게 아니라 다른 클래스에 의해서 상속이 되어 사용된다. 믹스인에는 create(), list() 등의 리소스를 생성하거나 가..
2022.07.12