簡體   English   中英

如何在 django-restframework 中的 URL 中傳遞值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM