3

我正在尝试使用客户端 python 脚本连接到我的 Django 服务器。现在我只是试图连接到一个视图并检索 HttpResponse。以下工作正常

import urllib2
import urllib

url = "http://localhost:8000/minion/serve"
request = urllib2.Request(url)
response = urllib2.urlopen(request)
html = response.read()
print html

但是,如果我将其更改为

import urllib2
import urllib

url = "http://localhost:8000/minion/serve"
values = {'name': 'Bob'}
data = urllib.urlencode(values)
request = urllib2.Request(url, data)
response = urllib2.urlopen(request)
html = response.read()
print html

我明白了urllib2.HTTPError: HTTP Error 500: INTERNAL SERVER ERROR。我在这里做错了吗?这是我试图遵循的教程,http ://techmalt.com/?p=212 http://docs.python.org/2/howto/urllib2.html

编辑:尝试按照 That1Guy 的建议进行以下更改(其他行保持不变)

request =  urllib2.Request(url, data)
response = urllib2.urlopen(request, data)

这返回了与以前相同的错误消息。

编辑:如果我更改正在查看的页面,它似乎可以工作,因此错误不在客户端脚本中。因此,鉴于这一启示,这是正在访问的服务器端视图:

def serve(request):
    return HttpResponse("You've been served!")

如您所见,它非常简单。

编辑:测试内部错误是否可能是由缺少 csrf 令牌引起的,但 csrf_exempt 装饰器未能解决错误。

4

1 回答 1

1

终于用这个弄明白了。如何将字典从 python 脚本发布到 django url?

原来我的网址缺少斜杠。我猜是小事总能吸引你。

于 2013-06-26T16:55:14.330 回答