url에서 두 개 이상 변수 받기 & get parameter
path('api/<uuid:post_pk>/comments/<int:pk>', views.CommentDetailAPIView.as_view()),
이런식으로 각자의 형태에 맞게 그리고 이름을 다르게 해서 받은 뒤, views.py에 다음과 같이 선언하여 이용한다.
def get(self, request, pk, post_pk, format=None):
comment = self.get_comment(pk)
serializer = CommentSerializer(comment)
return Response(serializer.data)
이는 우리가 url을 통해서 받은 값을 view의 변수에 넣을 수 있다는 것을 의미한다.
추가정보 : id는 model을 생성하면 자동으로 만들어 진다.
따라서 해당 post의 pk값과 comment의 pk값을 통해서 댓글 한 개를 APIView로 접근할 수 있게 되었다.
get parameter
#%% arguments sequence matters
In [13]: def print_all(*tup, **dic):
...: print(tup)
...: print(dic)
In [14]: print_all(1, 2, 3,
...: A='Russia, Saudi',
...: F='Korea, Sweden')
(1, 2, 3)
{'A': 'Russia, Saudi', 'F': 'Korea, Sweden'}
위의 예시로 전부 파악할 수 있다.
-
get의 가변 매개변수로는 두 가지가 있는데, 첫번째로
*arg
, 두번째로**kwarg
가 있다.arg
는 포인터 하나이기 때문에tuple
로 표현되고,kwarg
는 포인터가 두개이기 때문에dictionary type
의data
가 들어갈 수 있다. -
함수를 이용할 때 무조건 tuple
dictionary
순으로parameter
가 들어가야 한다. 그렇지 못하면 오류가 발생한다. -
우리가 위에서 넣은
pk
,post_pk
는*arg
에 값을 넣은 것이다.
Author And Source
이 문제에 관하여(url에서 두 개 이상 변수 받기 & get parameter), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@wbsl0427/url에서-두-개-이상-변수-받기-get-parameter저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)