Frage: Wie kann ich mehrteilige Formulardaten in Python mithilfe der Anforderungsbibliothek senden? Obwohl ich weiß, wie man Dateien anhängt, fällt es mir schwer, Standardformulardaten in solche Anfragen zu integrieren.
Antwort:
Anfragen verarbeitet mehrteilige Formulardaten automatisch, wenn eine Datei abgelegt wird Der Parameter wird angegeben, was zu einer multipart/form-data POST-Anfrage anstelle einer application/x-www-form-urlencoded führt POST.
Syntax:
from requests import post response = post( url, files={ "form_field_name": "form_field_value", # No quotes needed for non-string values } )
Beispiel:
response = post("http://httpbin.org/post", files={"foo": "bar"}) assert response.status_code == 200
Erweiterte Steuerung:
Verwenden Sie Tupel, um den Dateinamen, den Inhaltstyp und mehr anzupassen Überschriften für jedes Teil. Zu den Tupelkomponenten gehören:
Beispiel:
files = {"foo": (None, "bar")} # No filename specified
Geordnete Mehrfachfelder:
Verwenden Sie eine Liste von Tupeln für geordnete oder mehrere Felder mit demselben Namen.
Verarbeitung von Daten und Dateien:
Bei der Verwendung von Daten und Dateien hat ein String-Datenparameter Vorrang. Andernfalls werden sowohl Daten als auch Dateien in der Anfrage kombiniert.
Optionale Bibliotheken:
Das request-toolbelt-Projekt bietet erweiterte Multipart-Unterstützung und ermöglicht Folgendes:
Beispiel mit request-toolbelt:
import MultipartEncoder from requests_toolbelt fields = { "foo": b"bar", # Fields support bytes objects "spam": ("spam.txt", open("spam.txt", "rb"), "text/plain") # Stream files } mp_encoder = MultipartEncoder(fields) response = post( url, data=mp_encoder, headers={"Content-Type": mp_encoder.content_type} )
Hinweis: Für Verwenden Sie bei der Methode „requests-toolbelt“ nicht das Argument „files=“, da der MultipartEncoder als Datennutzlast bereitgestellt wird.
Das obige ist der detaillierte Inhalt vonWie sende ich mehrteilige Formulardaten mit Dateien und Standardformulardaten in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!