TIL 35. path /query 파라미터

윤현묵·2021년 9월 11일
0

Django

목록 보기
10/17
post-thumbnail
post-custom-banner

1. path 파라미터

path 파라미터는 뷰클래스 함수에서 self와 request 외에 다른 인자를 가지게 되며 그 인자값이 엔드포인트가 됩니다. path 파라미터는 엔드포인트의 일부로서, 아래의 엔드포인트에서 {user}와 {cart_id}에 각각 그 값이 들어갑니다.
path 파라미터는 인자가 없으면 안되고 인자값으로 확실한 구분이 가능한 경우(특정 상품의 정보 등)에 주로 사용합니다

/service/user/{user}/carts/{cart_id}

path('user/<int:user_id>/product/<int:product_id>', views.CartView.as_view()),

이런식으로 각자의 형태에 맞게 그리고 이름을 다르게 해서 받은 뒤, views.py에 다음과 같이 선언하여 이용합니다. (url을 통해서 받은 값을 view의 변수에 넣을 수 있다는 것을 의미)

def get(self, request, user_id, cart_id):
       

2. query string 파라미터

엔드포인트에서 물음표("?") 뒤에 등장하는 query 파라미터는 다음과 같은 형식을 갖고 있습니다.

/surfreport?user=3&product=17

REST API의 모범을 준수하자면 query 파라미터는 정렬 혹은 필터링이 필요할 때, 검색과 같이 여러 개의 조건이 결합될 때 주로 사용합니다.

[views.py]

class CartView(View):
    def get(self, request):
        user = request.GET.get('user')
        product = request.GET.get('product')

View 클래스에 위와 같이 설정하고 파라미터 key:value 값으로 user:4, product:2
httpie에서는 http -v url user=4 product=2로 입력하면
장고의 request.GET 에는 <QueryDict: {'user': ['4'], 'product': ['2']}>가 들어가게 되고 request 헤더에 엔드포인트 url로 /cart?user=4&product=2가 찍히게 됩니다.

profile
진정성 있는 개발자를 꿈꾼다
post-custom-banner

0개의 댓글