You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PC向Django应用发送GET请求获取参数返回None如何解决

问题根因
  • 使用requests.get()发送GET请求时错误使用了data参数传递查询参数:GET请求的参数需要放在URL的查询字符串中,requests中对应传递参数的字段为params,data字段仅用于POST/PUT等携带请求体的请求,不会被解析到GET查询参数中,因此Django侧无法读取到test参数,返回None。
  • 请求URL缺少http://协议头,requests无法正确识别请求地址,会导致请求异常。
  • 额外说明:Django视图的入参是请求对象,命名为response易引发歧义,建议改为request,不过该问题不影响代码运行。
修正后的代码

1. 客户端请求脚本

import requests
payload = {'test': 1}
# 替换data为params,URL添加http协议头
r = requests.get("http://127.0.0.1:8000", params=payload)
print(r.text)

2. Django视图优化(可选,增强健壮性)

from django.http import HttpResponse

# 入参重命名为request更符合惯例
def SomeView(request):
    if request.method == 'GET':
        # 增加默认值,避免未传test参数时返回None引发异常
        data = request.GET.get("test", "未传递test参数")
    return HttpResponse(data)
验证效果

修改后启动Django服务,再运行请求脚本,即可正常输出1符合预期。

内容的提问来源于stack exchange,提问作者Jackhammer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 17:57:03