URL의 쿼리 매개변수에 대한 접근을 제공한다.
전통적인 Django는 request.GET을 사용하여 쿼리 매개변수에 접근한다.
하지만 DRF에서는 request.query_params를 권장한다.
이를 통해 내가 원하는 데이터만 검색을 할 수 있다.
우선 코드를 작성하기 이전 어떤 데이터가 있는지 확인을 해야한다.
기존 테이블에 임의로 데이터를 추가하였다.
@api_view(['GET', 'POST', 'PUT', 'DELETE'])
def TestAPI(request, id=None):
queryset = Testapi.objects.all()
if request.method == 'GET':
title = request.query_params.get('title')
if title:
queryset = queryset.filter(title__contains=title)
serializer = TestAPISerializer(queryset, many=True)
return Response(serializer.data)
코드 | 설명 |
---|---|
request.query_params.get('title') | 요청의 쿼리 매개변수에서 'title' 매개변수를 가져온다. |
title__contains=title | Django의 ORM에서 사용되는 검색 필드 조회 연산자로 특정 문자열이 포함된 레코드를 검색 |
queryset.filter() | 매개변수 값을 포함하는 레코드로 QuerySet을 필터링 |
URL입력시 ?title=안녕이라고 입력 후 조회시 title에 '안녕'이라는 글자가 들어가는 모든 데이터를 조회할 수 있다.