Модуль запросов python не может загрузить файл на сервер django

Я пытаюсь загрузить файл на сервер Python django через клиент Python.

Я пробовал это -

import requests

url = 'http://wings.spectrumserver/sdm/lists'
files = {'file': open('file.ext', 'rb')}
r = requests.post(url, files=files)

но как-то не работает. No error but no output/upload as well

Я успешно загружаю файлы с помощью браузера и командной строки.

curl -i --form docfile=@localfilename http://wings.spectrumserver/sdm/lists

Подскажите пожалуйста, что делать ??

Я мало что знаю о curl и python, но, возможно, кто-то может предложить что-то, что является копией этой команды curl в pycurl, поскольку она уже работает с curl.

Пожалуйста, обратитесь сюда для получения более подробной информации по вопросу -

загрузить файл на сервер django с помощью curl


person Udit Gupta    schedule 08.11.2013    source источник
comment
У меня точно такая же проблема. Я смотрю запросы, и там ничего нет для request.FILES или request.POST.   -  person CrabbyPete    schedule 22.11.2013


Ответы (2)


Я думаю, что проблема здесь в имени элемента файла. Это должно быть docfile. В примере curl вы передали это как docfile, но в скрипте python вы оставили его как file.

Измените эту строку:

files = {'file': open('file.ext', 'rb')}

к этому:

files = {'docfile': open('file.ext', 'rb')}
person scriptmonster    schedule 08.11.2013

Когда вы смотрите на запрос в своем представлении, вы можете увидеть его в request.FILES ['file'] У меня возникла проблема, потому что у меня была неправильная настройка в файле заголовков.

person CrabbyPete    schedule 22.11.2013