python-requestsはファイル要求を送信します。
2976 ワード
python-requestsはファイル要求を送信します。
Max.Bai
2017-08
1.requestsファイル送信機能Requestsにより、複数の部分の符号化ファイルをアップロードすることが簡単になります。
2.requestsが複数のファイル要求を送信する
ファイルを元のグループのリストにセットすると、元のグループが次のようにデータを送信します。
ファイルを読み込み:
Max.Bai
2017-08
1.requestsファイル送信機能Requestsにより、複数の部分の符号化ファイルをアップロードすることが簡単になります。
>>> url = 'http://httpbin.org/post'
>>> files = {'file': open('report.xls', 'rb')}
>>> r = requests.post(url, files=files)
>>> r.text
{
...
"files": {
"file": ""
},
...
}
ファイル名、ファイルタイプ、要求ヘッダを明示的に設定できます。>>> url = 'http://httpbin.org/post'
>>> files = {'file': ('report.xls', open('report.xls', 'rb'), 'application/vnd.ms-excel', {'Expires': '0'})}
>>> r = requests.post(url, files=files)
>>> r.text
{
...
"files": {
"file": ""
},
...
}
を望むなら、ファイルとして受信する文字列を送信しても良いです。>>> url = 'http://httpbin.org/post'
>>> files = {'file': ('report.csv', 'some,data,to,send
another,row,to,send
')}
>>> r = requests.post(url, files=files)
>>> r.text
{
...
"files": {
"file": "some,data,to,send\
another,row,to,send\
"
},
...
}
非常に大きなファイルをmultiiPad/form-dataとして送ったら、要請をデータフローにしてほしいかもしれません。デフォルトではrequestsはサポートされていませんが、サードパーティのパッケージがあります。toolbelt文書を読んで使い方を知ることができます。2.requestsが複数のファイル要求を送信する
ファイルを元のグループのリストにセットすると、元のグループが次のようにデータを送信します。
data = {'ts_id': tsid}
files = [('images',('1.png', open('/home/1.png', 'rb'),'image/png')),('images',('2.png', open('/home/2.png', 'rb'),'image/png'))]
r = requests.post(url, data=data, files=files)
print r.text
3.Django受信ファイル添付紹介Djangoの中で写真ファイルのデータをどう受信しますか?ファイルを読み込み:
from werkzeug.utils import secure_filename
def upload_file(request):
if request.method == 'POST':
uploaded_files = request.FILES.getlist("images")
try:
for file in uploaded_files:
filename = secure_filename(file.name)
handle_uploaded_file(os.path.join(ft, filename), file)
except Exception as e:
result_json = {"msg": str(e)}
result = {
'json': result_json
}
return JsonResponse(result, safe=False)
ファイルを保存:def handle_uploaded_file(filename, f):
try:
destination = open(filename, 'wb+')
for chunk in f.chunks():
destination.write(chunk)
destination.close()
except Exception as e:
raise Exception('save %s failed: %s' % (filename, str(e)))
requests公式サイト:http://docs.python-requests.org/zh_CN/latest/user/quickstart.葏post-multiipad-encoded