클라이언트 측 파이썬 스크립트를 사용하여 장고 서버에 연결하려고합니다. 지금은보기에 연결하고 HttpResponse를 검색하려고합니다. 파이썬의 urllib을 사용하여 POST 데이터를 인코딩하는 방법
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=212http://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!")
여기서 알 수 있듯이 매우 직설적입니다.
EDIT : 내부 오류가 csrf 토큰 누락으로 인해 발생했는지 여부를 테스트했지만 csrf_exempt 데코레이터가 오류를 해결하지 못했습니다.
브라우저에서'http : // localhost : 8000/minion/serve? name = bob'을 시도하고 어떤 일이 발생하는지 확인하십시오. – karthikr
'urlopen '에'data'를 전달하십시오. – That1Guy
잘 작동하는 @karthikr 출력은 이전과 같은 오류 메시지를 반환하는 – avorum