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