Я пытаюсь отправить данные POST из скрипта python в URL-адрес. Вот код:Python POST не работает
def createperson(self,name=None):
SERVER_BASE_ADDR = 'http://localhost:8000/'
postdata = urllib.urlencode({'name':name})
req = urllib2.Request(SERVER_BASE_ADDR + 'people/add')
fd = urllib2.urlopen(req,postdata)
return name
Но это возвращает
HTTPError: HTTP Error 500: INTERNAL SERVER ERROR
Добавление человека на URL-адрес в порядке. Есть идеи?
EDIT
на стороне сервера использует Джанго декораторы для обработки POST и GET.
@require_http_methods(["GET", "POST"])
def add(request):
if request.method == "POST":
#do stuff with post data
Не является ли вышеуказанный код на языке python таким же, как отправка формы на html-шаблоне? Если это то же самое, то не должны обрабатывать обработчики таким же образом?
Спасибо
решаемые с помощью:
c = urllib2.build_opener()
postdata = urllib.urlencode({'name':name})
r = c.open(url,postdata)
другого подхода, но делает работу. Спасибо за все ваши ответы.
Что вы используете для обработки запроса на стороне сервера? Требуется ли для этого косая черта /? Ваш сервер дает вам какие-либо отзывы о том, почему его отказ от запроса? – jdi