1. DRF 란??
django에서 웹페이지를 구동하는 방식
원래 template.html에서 사용자가 입력한 정보를 전달해주고 view.py에서 가공한 데이터를 전달하는 방식이라면
사용자가 입력한 정보를 전달하는 프레임워크가 React라면..!!
django rest famework : django 안에서 restful API 서버를 쉽게 구축할수 있도록 해주는 오픈소스 라이브러리
Restful API??
- API: 응용프로그램 데이터를 주고받는 규약
- REST API : Json 형태로 CRUD 데이터를 주고받는 규약
- RESTful : REST 방식을 따라서 개발하는 것
웹이 Json 형태로 CRUD 데이터를 주고받도록 ㄱ구현하기!!
Django와 DRF 차이는 직렬화(serialization 여부) 차이
2. Serialization
query set, 모델 인스턴스 등의 복잡한 데이터를 쉽게 변환가능한 데이터로 변환시키는 것
3. Request & Responses
request.data -> request.POST와 비슷한 역할
request.POST : 데이터(Form) 메소드(POST)
request.data : 데이터(임의의 데이터) 메소드(POST, PUT, PATCH)
*PUT : 리소스의 모든 것을 업데이트, PATCH : 리소스의 일부를 업데이트
Response objects
- 주요기능 : content negotiations
- 사용자에게 반환하기에 적절한 content 종류를 결정
- return Response(data) -> 요청한 content 종류를 렌더링
상태코드 : HTTP 요청에 대한 상태를 표시하는 코드가 존재하면 명확하게 읽을 수 있다
ex) HTTP_400_BAD_REQUEST
API wrapper
다른 API로 요청을 전송하는 중간다리 API
토큰이 필요하고 외부 서버랑 통신이 필요할때 사용한다
- @api_view : 함수기반 뷰(FBV)를 작성할때 사용
- APIView 클래스 : 클래스기반 뷰(CBV)를 작성할때 사용
4. CBV
코드의 재사용성이 높고 DRY(don't repeat yourself)하게 만들 수 있다
mixins
메소드를 포함하고 있는 하나의 class
mixins에 포함되어 있는 메소드를 다른 클래스가 사용할때 상속받을 필요가 없음
일반적인 class -> 다른 클래스에 사용될 때 상속되어야함
mixin -> 다른 클래스에 사용될 때 상속필요없음
'멋쟁이 사자처럼 10기 > 세션' 카테고리의 다른 글
2022/07/15 <DRF 유저인증 & 배포 세션> (0) | 2022.07.31 |
---|---|
2022/06/28 <DRF 심화 세션> (0) | 2022.07.15 |
2022/05/27 <유저확장과 인증 세션> (0) | 2022.07.15 |
2022/05/20 <Static & Media 세션> (0) | 2022.07.15 |
2022/05/13 <1:N & M:N 세션> (0) | 2022.06.07 |