Django REST Framework从URL获取字符串参数返回JSON响应时出现Null值问题
解决DRF中GET请求参数返回Null的问题
嘿,我一眼就揪出问题所在啦!你的请求是GET请求,URL里的solute和solvent属于查询字符串参数,但你却用了request.POST.get()来获取——这个方法是专门用来提取POST请求体里的表单数据的,GET请求根本不会携带POST数据,所以自然拿到的都是Null咯!
修正后的代码
from rest_framework.decorators import api_view from rest_framework.response import Response @api_view(['GET']) def result(request): response = {} # DRF推荐用request.query_params获取GET查询参数 solute = request.query_params.get('solute') solvent = request.query_params.get('solvent') # 也可以用Django原生的request.GET.get(),效果完全一致 # solute = request.GET.get('solute') # solvent = request.GET.get('solvent') results = [solute, solvent] return Response({'result': results}, status=200)
额外小提示
如果担心参数缺失导致返回None,可以给get()方法加个默认值,比如request.query_params.get('solute', '未提供'),这样能让逻辑更健壮~
现在再访问你的请求URL http://127.0.0.1:8000/predict/?solute=CC(C)(C)Br&solvent=CC(C)(C)O,就能得到包含正确参数值的JSON响应啦!
内容的提问来源于stack exchange,提问作者harsh
相关产品推荐
相关产品推荐

