[django] query/url parameter


1. query parameter


HTTPリクエストでリクエストします.GETとrequestPOSTオブジェクトにはクエリーリストがあります.
# [views.py] 

	try:
            queryset = Event.objects.all().order_by('-event_id')
            order_by = request.GET.get('order_by', None)
            if order_by == 'hits':
                queryset = Event.objects.all().order_by('-event_views')
            return JsonResponse({'status' : 200, 'event_list': list(queryset.values())}, status = 200)
        except KeyError:
            return JsonResponse({"status": 400, "message" : "Invalid Value"}, status = 400)           
ビュークラスで上記の設定を行い、パラメータキー:Value値を使用します.order_by : "hits"に示すように、GETリクエストが発行された場合
長続きする要求.GETには<QueryDict: {'order_by': ['hits'], }>が含まれている.
テストには必ずパラメータを付けます.

2. url parameter

# [views.py]

class DetailEvent(generics.RetrieveUpdateDestroyAPIView):
    queryset = Event.objects.all()
    serializer_class = EventSerializer
# [urls.py]

urlpatterns = [
    path('event/<int:pk>/',views.DetailEvent.as_view()),
    ...
]
urlパラメータは、ビュークラス関数にselfおよびrequestのほかに、パラメータ値が端点となり、urlsファイルに反映されます.localhost:8000/event/1上記のテストを行う場合は、パラメータを設定する必要はありません.
urlに直接反映してテストすればいいです.
urlパラメータにパラメータがなく、パラメータ値で正確に区別できる場合(例えば、特定の商品の情報)、urlパラメータが主に使用されます.
クエリー・パラメータは、主に検索などの複数の条件を組み合わせるために使用されます.