[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パラメータが主に使用されます.
クエリー・パラメータは、主に検索などの複数の条件を組み合わせるために使用されます.
Reference
この問題について([django] query/url parameter), 我々は、より多くの情報をここで見つけました
https://velog.io/@choiyunh/django-queryurl-parameter
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
# [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)
# [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パラメータが主に使用されます.
クエリー・パラメータは、主に検索などの複数の条件を組み合わせるために使用されます.
Reference
この問題について([django] query/url parameter), 我々は、より多くの情報をここで見つけました https://velog.io/@choiyunh/django-queryurl-parameterテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol