기존 코드 분석을 보다가 GET 요청을 하는 API에서 request.GET.get 이라는 문법을 봤다.

 

분명히 GET 요청을 할 때는POST 요청을 할 때와 다르게 json 형식으로 data를 넣을 수가 없는 걸로 알고 있었기 때문에 

 

한참을 헤매다가 이 글을 쓴다.

 

*참고로 request.GET 은 GET으로 받는 인자들을 모두 포함하는 딕셔너리 객체이다.

 

1. query parameter

결론부터 말하면, 위와 같이 path뒤에 추가적으로 보낼 query를 작성하는 방식이다. 

 

스프링은 @RequestParam 어노테이션을 사용하여 어떤 query를 작성할 것인지를 보여줬는데, 장고에는 이런게 없이

 

user_id = request.GET.get("user_id") 이런 식으로 사용하기 때문에 API 명세서를 잘 확인하는 것이 중요할 것 같다.

 

2. url parameter

path('channels/<channel_id>/unfollow/', delete_channel_follow),

 

이런 식으로 작성한 path url에서 <channel_id>부분이 url parameter이다. 스프링으로 따지면 {channel_id} 로 작성되고

 

서비스 단에서는 @PathVariable로 명시하는 data이다.

위 그림과 같이 url parameter방식을 사용한 경우에는 query parameter방식과 다르게 함수를 정의할 때 매개변수로

 

request와 더불어 url parameter를 추가적으로 넘겨줘야 한다.

 

References

https://velog.io/@swhybein/django-queryurl-%ED%8C%8C%EB%9D%BC%EB%AF%B8%ED%84%B0

https://velog.io/@meekukin/TIL-django

'Django' 카테고리의 다른 글

Django __str__  (0) 2021.08.30
Django 쿼리문 F() 사용하기  (0) 2021.08.04
Django ORM query set 중복 제거  (0) 2021.07.26
Django select_related / prefetch_related  (0) 2021.07.14
Django 세팅하기  (0) 2021.07.11

+ Recent posts