[Django] Django와 Path parameter

그냥·2022년 6월 28일
0

django

목록 보기
14/20

클라이언트에서 POST 메소드를 사용하지 않고 GET 메소드를 사용해서 원하는 데이터만을 가져오고 싶은 경우가 있다. 이럴 때 두 가지 방법이 있는데 하나는 Path parameter이고 다른 하나는 Query Parameter이다. 이번 포스팅에서는 Path parameter에 대해서 알아보려고한다.


Path parameter란

백엔드에 데이터 요청시 url에 데이터를 작성하여 원하는 데이터를 가져오는 방법이다.

http://localhost:8000/users/**3**

1. urls.py

from django.urls import path
from .views import ProductDetailView

urlpatterns = [
    ...
    path('/product/<int:product_id>', ProductDetailView.as_view()), 
]
  • /product 뒤에 <int:product_id>는 /product 뒤에 int 값을 받을 것이고 그 값은 변수 product_id에 저장된다.

2. views.py

class ProductDetailView(View):
    def get(self, request, product_id):						
        if not Product.objects.filter(id=product_id).exists():
            return JsonResponse({'message': 'PRODUCT_DOES_NOT_EXIST'}, status=404)

        product = Product.objects.get(id=product_id)

get 함수에서 인자를 self, request, product_id 3개를 받고 있다. product_id는 urls에서 선언한 변수로 클라이언트에서 작성한 값이다. 그러면 product_id를 변수로 사용해서 filter(id=product_id)처럼 사용할 수 있다. 위 예시는 클라이언트로부터 product_id를 받아서 그것에 해당되는 객체가 Product 테이블에 있는지 exists() 함수를 사용해서 확인한 것이다.

0개의 댓글

관련 채용 정보