python-requestsはファイル要求を送信します。

2976 ワード

python-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