Heim >Backend-Entwicklung >Python-Tutorial >Wie sende ich mehrteilige/Formulardatenanfragen in Python mit Requests und Requests-Toolbelt?
Requests bietet die Möglichkeit, Multipart-/Formulardatenanfragen zu senden, was sowohl das Hochladen von Dateien als auch die Übermittlung von Formulardaten ermöglicht .
Um eine Datei hochzuladen, geben Sie einfach ein Schlüssel-Wert-Paar im Dateiparameter an, wobei die Der Schlüssel ist der Name des Formularfelds und der Wert ist ein geöffnetes Dateiobjekt oder ein Dateipfad. Zum Beispiel:
import requests with open('image.jpg', 'rb') as f: file_data = {'image': f} response = requests.post('http://example.com/upload', files=file_data)
Um Formulardaten zu senden, können Sie auch den Dateiparameter verwenden. Anders als beim Hochladen von Dateien handelt es sich bei den Werten jedoch nicht um Dateiobjekte, sondern um Zeichenfolgen oder Bytes.
Um Formulardaten anzugeben, verwenden Sie ein Wörterbuch, in dem die Schlüssel die Formularfeldnamen und die Werte die Daten sind, die Sie übermitteln möchten. Zum Beispiel:
form_data = {'username': 'myusername', 'password': 'mypassword'} response = requests.post('http://example.com/login', files=form_data)
Sie können gleichzeitig Dateien hochladen und Formulardaten senden, indem Sie sowohl die Datei- als auch die Datenparameter verwenden. Wenn Daten eine Zeichenfolge sind, werden sie anstelle von Dateien verwendet. Wenn es sich bei den Daten um ein Wörterbuch handelt, werden sie mit Dateien zusammengeführt.
Zum Beispiel:
form_data = {'comment': 'Hello, world!'} file_data = {'image': 'image.jpg'} response = requests.post('http://example.com/post', data=form_data, files=file_data)
Die Bibliothek „Requests-Toolbelt“ bietet Erweiterte Multipart-Unterstützung mit erweiterten Funktionen wie:
Um „requests-toolbelt“ zu verwenden, installieren Sie es über pip install „requests-toolbelt“ und befolgen Sie diese Schritte :
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)
Durch die Verwendung Mit diesen Methoden können Sie nahtlos mehrteilige/Formulardatenanfragen in Python senden, sowohl für das Hochladen von Dateien als auch für die Übermittlung von Formulardaten.
Das obige ist der detaillierte Inhalt vonWie sende ich mehrteilige/Formulardatenanfragen in Python mit Requests und Requests-Toolbelt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!