(DRF) - Basic
# Restful API Django

JSON (JavaScript Object Notation)
데이터의 송수신을 자바스크립트의 객체로서 수행할 수 있게끔하는 가벼운 문자열 데이터 표현식
<> XML(Extensible Markup Language)
만국 공통 자료형 -> 문자열
문자열로 변환해서 전송하는 과정 -> 직렬화(Serializer)
1 | import json |
Http Request & Method
Http Request
| Method | Meaning |
|---|---|
| GET | 요청받은 URL의 정보를 검색하여 응답한다. |
| POST | 요청된 자원을 생성(CREATE)한다. |
| PUT | 요청된 자원을 수정(UPDATE)한다. |
| DELETE | 요청된 자원을 삭제(DELETE)한다. |
| PATCH | 요청된 자원의 일부를 교체(수정)한다. |
| OPTION | 웹서버에서 지원되는 메소드의 종류 확인 |
HTTP Response
1xx(정보) : 요청을 받았으며 프로세스를 계속한다.
2xx(성공) : 요청을 성공적으로 받았으며 인식했고 수용하였다.
3xx(리다이렉션) : 요청 완료를 위해 추가 작업 조치가 필요하다.
4xx(클라이언트 오류) : 요청의 문법이 잘못되었거나 요청을 처리할 수 없다.
5xx(서버 오류) : 서버가 명백히 유효한 요청에 대해 충족을 실패했다.
Httpie
Command Line으로 동작하는 Http Client
1 | pip install --upgrade httpie #설치 |
POST
1 | #JSON 형식의 요청: |
HTML 방식
JSON방식
CBV(Generic View) <> FBV
Class Based View <> Function Based View
왜 클래스?
- GET, POST 등 HTTP 메소드에 따른 처리 코드를 작성할 때 if 함수 대신에 메소드 명으로 코드의 구조가 깔끔하다.
- 다중상속 같은 객체지향 기법을 활용해 제너릭 뷰, 믹스인 클래스 등을 사용해 코드의 재사용과 개발 생산성을 높여준다.
제네릭 뷰와 상속
기반 뷰(Base View): 뷰 클래스를 생성하고 다른, 제너릭 뷰의 부모 클래스가 되는 기본 제너릭 뷰
View: 최상위 부모 제너릭 뷰 클래스TemplateView: 주어진 템플릿으로 렌더링RedirectView: 주어진 URL로 리다이렉트
제너릭 보기 뷰(Generic Display View): 객체의 목록 또는 하나의 객체 상세 정보를 보여주는 뷰
DetailView: 조건에 맞는 하나의 객체 출력ListView: 조건에 맞는 객체 목록 출력
제너릭 수정 뷰(Generic Edit View): 폼을 통해 객체를 생성, 수정, 삭제하는 기능을 제공하는 뷰
FormView: 폼이 주어지면 해당 폼을 출력CreateView: 객체를 생성하는 폼 출력UpdateView: 기존 객체를 수정하는 폼을 출력DeleteView: 기존 객체를 삭제하는 폼을 출력
제너릭 날짜 뷰(Generic Date View): 날짜 기반 객체의 연/월/일 페이지로 구분해 보여주는 뷰
YearArchiveView: 주어진 연도에 해당하는 객체 출력MonthArchiveView: 주어진 월에 해당하는 객체 출력DayArchiveView: 주어진 날짜에 해당하는 객체 출력TodayArchiveView: 오늘 날짜에 해당하는 객체 출력DateDetailView: 주어진 연, 월, 일 PK(또는 슬러그)에 해당하는 객체 출력
제네릭 뷰 변수 ?
modelquerysettemplate_name : 템플릿 파일명을 문자열로 지정context_object_name : 뷰에서 템플릿 파일에 전달하는 컨텍스트 변수명을 지정paginate_by : 페이징 기능이 활성화 된 경우 페이지당 출력 항목 수를 정수로 지정date_field : 이 필드의 타입은 DateField 또는 DateTimeFieldform_class : 폼을 만드는데 사용할 클래스를 지정success_url : 폼에 대한 처리가 성공한 후 리디이렉트할 URL 주소
함수
def get_queryset() : queryset 속성을 반환def get_context_data(**kwargs) : 뷰에서 템플릿 파일에 넘겨주는 컨텍스트 데이터를 추가하거나 변경하는 목적으로 오버라이딩def form_valid(form)





