我正在尝试使用客户端 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 装饰器未能解决错误。