繁体   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