과일가게 재고 조회, 추가, 삭제 API 만들어보자.
과일가게 모델 생성

필드로 id, name, count를 주었다.
재고 조회 API
1. serializer 만들기

json 형태의 응답을 제공하기 위해 serializer을 작성해서 처리해주자.
모델의 id, name, count 필드를 json으로 바꿔 주라는 의미입니다.
2. 조회 view 만들기

view를 작성하는 데에는 다양한 방법이 있다. 나는 그 중 drf의 mixins를 사용했다. 클래스형뷰에서 중복 선언이 많다는 단점을 개선한 view였다.
(같은 모델에서 가져온 데이터 중복, 같은 시리얼라이즈 또 사용)
여기서 get 함수가 전체 목록 조회하는 함수이다.
queryset, serializer_class는 GenericAPIView의 속성들이라 반드시 지정을 해주어야 한다.
queryset에는 일반적으로 모든 데이터를 불러온다.
serializer_class는 해당 API에서 사용할 시리얼라이저를 설정한다.
3. 경로 지정

방금 만든 mixins 뷰는 클래스형 뷰 이다. 장고의 URL은 요청과 관련된 파라미터들을 클래스가 아니라 함수에 전달하기 때문에, 클래스형 뷰는 클래스로 진입하기 위한 as_view( )클래스 메소드를 사용한다.
실행

과일 입고 API
1. serializer 만들기
재고조회때 사용한 시리얼라이저 재사용
2. 입고 view 만들기

post가 과일 1개를 등록하는 메소드이다.
3. 경로지정

실행

아래에 json 입력하지 않고 사용자 친화적인 폼이 있다. drf의 mixin에서 제공해주는 템플릿이다.
과일 구매 API
1. serializer 만들기

화면에 보여질 필드가 id, name, count이기 때문에 위와 다를 것 없다. 따라서 계속 사용하던 시리얼라이저를 사용할 것이다.
2.구매 view 만들기

개별 모델 인스턴스의 object 조회를 수행 할 때 사용해야하는 모델 필드. 기본값은 'pk'이다.
get, post, delete 메소드를 이용해 과일 1개의 상세페이지로 가서 삭제하고 수정할 수 있는 기능을 구현했다.
3. 경로지정

<int:id>를 이용해 과일 id를 통해 경로를 지정한다.
실행

조회 목록 화면에서 1번 딸기 75개를 생성한다.

생성된 것 확인할 수 있다.
이제 딸기 상세조회 페이지로 넘어가보자.
http://127.0.0.1:8000/grocery/2/

여기서 delete를 통해 과일을 삭제할 수 있고,
put을 통해 과일 재고를 변경할 수 있다.
insomnia 이용해서도 볼 수 있는데
생략...ㅎ
html 템플릿은 시간부족 이슈로...
아쉬웠던 점
과일 하나 생성하면 바로 전체 조회 페이지로 넘어가게 만들고 싶다.
과일 재고 변경하는 페이지에서 id, name값은 고정하고 count만 변경하고 싶다....
'Study > Django' 카테고리의 다른 글
[Django] 백엔드를 위한 Django REST Framework with 파이썬 (7) (0) | 2024.10.29 |
---|---|
[Django] 백엔드를 위한 Django REST Framework with 파이썬 (6) (2) | 2024.10.29 |
[Django] 백엔드를 위한 Django REST Framework with 파이썬 (4) (1) | 2024.10.29 |
[Django] 백엔드를 위한 Django REST Framework with 파이썬 (3) (2) | 2024.10.29 |
[Django] 백엔드를 위한 Django REST Framework with 파이썬 (2) (0) | 2024.10.29 |