[英]How to pass value in URL in django-restframework
我一直在關注下面的教程,它只是在 POSTMAN 中顯示價值
https://dzone.com/articles/create-a-simple-api-using-django-rest-framework-in
代碼:
@api_view(["POST"])
def IdealWeight(heightdata):
try:
height=json.loads(heightdata.body)
weight=str(height*10)
return JsonResponse("Ideal weight should be:"+weight+" kg",safe=False)
except ValueError as e:
return Response(e.args[0],status.HTTP_400_BAD_REQUEST)
我想使用 GET 方法而不是 POST 並在 url 中傳遞高度值,例如: http://127.0.0.1:8000/IdealWeight/height=20
結果應該以 JSON 的形式可見
您可以使用查詢參數作為在 URL 中傳遞高度的媒介。
http://127.0.0.1:8000/IdealWeight/?height=20
查詢參數也稱為查詢字符串,是出現在? 在 URL 中。
key1=value1&key2=value2&key3=value3...
=
分隔。&
@api_view(["GET"])
def IdealWeight(request):
try:
height=int(request.query_params.get('height', 0))
weight=str(height*10)
return JsonResponse("Ideal weight should be:"+weight+" kg",safe=False)
except ValueError as e:
return Response(e.args[0],status.HTTP_400_BAD_REQUEST)
您可以使用query_params
從 url 獲取價值
嘗試這個:
@api_view(["GET"])
def IdealWeight(request):
try:
height= int(request.query_params.get('height'))
weight=(height)*10
return JsonResponse({"Weight should be": "{}".format(weight)}, status=status. HTTP_200_OK)
except ValueError as e:
return Response(e.args[0],status.HTTP_400_BAD_REQUEST)
在下面輸入 URL 以獲得結果: http://127.0.0.1:8000/IdealWeight/?height=20
確保在您的 urls.py 中通過/
,因為您使用的是 GET 方法: path('IdealWeight/',views.IdealWeight,name='IdealWeight'),
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.