Django View

이재문·2021년 12월 12일
0

Django

목록 보기
2/2
post-thumbnail

프로젝트를 진행전 API를 만들어보며 post를 사용해 본적이 있다. 다른 view method는 사용할 경우가 없어 사용해보지 못했다.
하지만 완벽하게 이해를 해서 사용을 하지 않았다. 지금 생각하면 사용방법만 알아서(?) 사용했다고 본다.


GET, POST

공통점

먼저 get과 post는 사용자나 프론트측에서 서버에 request를 요청을 하고 서버에서 응답을 주는 공통점이 있다.

차이점

get과 post의 가장 큰 차이점은 요청방식이다. get은 url에 요청사항을 붙이고 post는 요청 내용을 body에 붙여 요청한다.
get을 사용할 때 url에 요청을 넣는다는 말은 대표적으로 path parameter와 query parameter가 있다. 이부분에 대해서는 다음에 정리하겠다.
예를들어 검색이나 쇼핑사이트에서 & ?가 포함된 url주소를 본적있을 것이다. 이런 url을 통한 요청을 get method를 통해 받아 응답을 해준다.
post를 사용할 때는 게시물 작성과 로그인 같이 약간의 보안이 필요하거나 그 페이지를 특정하지 못하는 페이지에 사용된다. 그리고 사용자에 의해 body(나는 json방식의 body)에 contents가 담겨 요청이 들어오고 그 요청에 key 값에 맞게 응답을 한다.


응답방식

팀 프로젝트를 진행하며 프론트와 의사소통을 하며 가장 많은 이야기를 한 내용이 응답방식이다. 처음에 몇번이고 이해와 기억을 못해 계속 물어본 기억이 있다. 팀원의 성격이 너무 좋아 같은 내용을 몇번이고 물어봐도 전혀 내색하지 않고 대답을 해줬다.(프론트도 마찬가지로...)
프론트와 백간에 요청방식과 응답방식을 일치시켜야 원활하게 진행이 되기에 무조건 알아야했다. 나는 많은 경우가 없었기에 두가지의 경우로 정리할 수 있다.
리스트, 딕셔너리 방식이다. 프론트에서는 리스트와 객체 방식으로 불렸다.
나는 리스트 형식으로 객체형식으로 응답을 했고, 아래에 사용한 코드를 줄여서 붙여넣었다.

result = {
            'user_name'     : user.name,
            'address'       : user.address,
            'package'       : [{
                'package_name'  : order_item.package.name,
                'package_price' : order_item.package.price * order_item.quantity,
            } for order_item in OrderItem.objects.filter(order_id=new_order.id)]
        }

프론트와 상의를 제대로해서 응답을 결정해야 코드를 수정할 경우가 줄어들 것이다.

profile
이제부터 백엔드 개발자

0개의 댓글