gpt4 book ai didi

python - 如何通过 Python urllib 将 JSON 数据发送到 Django 应用程序?

转载 作者:行者123 更新时间:2023-12-01 06:00:38 25 4
gpt4 key购买 nike

我正在尝试使用 python urllib 将 JSON 数据发送到我的 django Web 应用程序,但没有成功。这是我的代码;

Python 应用程序:

url = "http://127.0.0.1:8000/web_app"
values = {'name':'Paul','age':12}
jdata = {'data':values}
data = urllib.urlencode(values)
req = urllib2.Request(url, data, {'Content-Type':'application/json'})
try:
resp = urllib2.urlopen(req)
the_result = resp.read()
except urllib2.HTTPError, e:
return "Reques Failed!"

我的 Django Web 应用程序:

@csrf_exempt
def web_app(request):
print "In My webapp" # This never get printed!
data = request.POST['data']
return HttpResponse("Thankyou...")

请求似乎没有命中 Django web_app 函数,因为函数中的第一个打印没有执行!

添加:请注意,如果我从 urllib2.request 中的请求中删除数据,那么一切都会按预期工作!!

我错过了什么?

最佳答案

你的 urlconf 是什么样的?如果看起来像 '^web_app/$'APPEND_SLASH=True在设置中,默认情况下,您需要使用 "http://127.0.0.1:8000/web_app/" (注意后缀斜杠)。否则 Django 会尝试重定向 /web_app/web_app/如果没有匹配,则提示重定向 POST请求。

还有,设置'Content-Type':'application/json'没有任何意义。对于 HTTP 请求,您可以设置它并中断 the requirement of urllib2通过向其传递一个 JSON 转储的字符串;但你应该解析 request.body你自己而不是使用 request.POSTapplication/json通常用于指定Content-Type响应。

关于python - 如何通过 Python urllib 将 JSON 数据发送到 Django 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10654249/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com