ホームページ >バックエンド開発 >Python チュートリアル >Requests と Requests-Toolbelt を使用して Python でマルチパート/フォームデータ リクエストを送信する方法
リクエストでは、マルチパート/フォーム データ リクエストを送信する機能が提供され、ファイルのアップロードとフォーム データの送信の両方が可能になります。 .
ファイルをアップロードするには、キーと値のペアを指定するだけです。 files パラメータ。キーはフォーム フィールド名、値は開いているファイル オブジェクトまたはファイル パスです。例:
import requests with open('image.jpg', 'rb') as f: file_data = {'image': f} response = requests.post('http://example.com/upload', files=file_data)
フォーム データを送信するには、files パラメーターを使用することもできます。ただし、ファイルのアップロードとは異なり、値はファイル オブジェクトではなく文字列またはバイトです。
フォーム データを指定するには、キーがフォーム フィールド名、値が送信するデータであるディクショナリを使用します。例:
form_data = {'username': 'myusername', 'password': 'mypassword'} response = requests.post('http://example.com/login', files=form_data)
file パラメーターと data パラメーターの両方を使用して、ファイルのアップロードとフォーム データの送信を同時に行うことができます。データが文字列の場合、ファイルの代わりにそれが使用されます。データが辞書の場合、ファイルとマージされます。
例:
form_data = {'comment': 'Hello, world!'} file_data = {'image': 'image.jpg'} response = requests.post('http://example.com/post', data=form_data, files=file_data)
requests-toolbelt ライブラリは、次のような高度な機能を含む強化されたマルチパート サポート:
requests-toolbelt を使用するには、pip installrequests-toolbelt 経由でインストールし、次の手順に従います。 :
from requests_toolbelt.multipart.encoder import MultipartEncoder
mp_encoder = MultipartEncoder( fields={ 'field_name': 'field_value', ('file_name', 'file_content', 'file_type'), # Other form data fields and files can be added here } )
headers = {'Content-Type': mp_encoder.content_type} response = requests.post('http://example.com/post', data=mp_encoder, headers=headers)
これらのメソッドを利用すると、ファイルのアップロードとフォーム データの送信の両方について、Python でマルチパート/フォーム データ リクエストをシームレスに送信できます。
以上がRequests と Requests-Toolbelt を使用して Python でマルチパート/フォームデータ リクエストを送信する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。