Path parameter & Query parameter

Jayson Hwang·2022년 5월 29일
0

Django Basics

목록 보기
13/14
post-thumbnail

1.. Path parameter

Path parameter는 api url에 지정된 데이터 타입의 변수를 넘겨주고, 해당 url을 처리하는 View에서 이 변수를 받아 활용 가능

urls.py 예시

from django.urls   import path
from product.views import ProductDetailView

urlpatterns = [
    path('/product/<int:product_id>', ProductDetailView.as_view()),
]

url에서 int타입의 product_id를 받아서 이를 처리할 ProductDetailView로 넘김

views.py 예시

from django.views import View
from .models      import Product


class ProductDetailView(View):
	def get(self, request, product_id):
    
    	......
      
        product = Product.objects.get(id=product_id)

GET Method의 Parameter로 product_id를 받는다.

2.. Query parameter

Query parameter 엔드포인트 예시

GET /list?menu=1&sort=-price

위와 같이 http request를 보내면,
{'menu' : 1, 'sort' : '-price'}인 Query Dictionary로 받음

urls.py 예시

from django.urls   import path
from product.views import ProductListView

urlpatterns = [
    path('/product', ProductListView.as_view()),
]

views.py 예시

from django.views import View
from .models      import Category, Product

class ProductListView(View):
	def get(self, request):
    	category_name = request.GET.get('category', None)
        
        ......
        
        category = Category.objects.get(name=category_name)

3.. Path vs Query 적절한 사용은??

Query Parameter 방식은 주로 filtering, sorting, searching에 사용하는게 적합하며, RESTful 하게 설계한다면 용도에 맞게 사용하면된다.

profile
"Your goals, Minus your doubts, Equal your reality"

0개의 댓글