Heim > Artikel > Backend-Entwicklung > Beispiel für Python, der Anfragen zum Senden/Hochladen mehrerer Dateien implementiert
Dieser Artikel stellt hauptsächlich Beispiele für die Implementierung von Anfragen zum Senden/Hochladen mehrerer Dateien vor. Jetzt kann ich ihn mit Ihnen teilen
1. Erforderliche Umgebung
Python2 🎜>
url = "http://httpbin.org/post"
data = None
files = { ... }
r = requests.post(url, data, files=files)
WörterbuchtypTupellistentyp
2.1. Der Parameter für Wörterbuchtypdateien
Das offiziell empfohlene Wörterbuchparameterformat lautet wie folgt:{ "field1" : ("filename1", open("filePath1", "rb")), "field2" : ("filename2", open("filePath2", "rb"), "image/jpeg"), "field3" : ("filename3", open("filePath3", "rb"), "image/jpeg", {"refer" : "localhost"}) }Der Schlüssel dieses Wörterbuchs besteht darin, den Feldnamen in der Postanforderung zu senden, und der Wert des Wörterbuchs beschreibt die Informationen der zu sendenden Datei. Wie aus dem Obigen hervorgeht, kann der Wert ein 2-Tupel, 3-Tupel oder 4-Tupel sein. Dieses Tupel hat die Bedeutung:
("filename", "fileobject", "content-type", "headers")Standardmäßig wird der Standardwert verwendet. Zusätzlich zur oben genannten Verwendungsform unterstützt „Requests“ tatsächlich noch eine prägnantere Parameterform, wie folgt:
{ "field1" : open("filePath1", "rb")), "field2" : open("filePath2", "rb")), "field3" : open("filePath3", "rb")) }Der äquivalente Effekt dieser Parameterform ist wie folgt, wobei Dateiname der Dateiname des Dateipfads ist:
{ "field1" : ("filename1", open("filePath1", "rb")), "field2" : ("filename2", open("filePath2", "rb")), "field3" : ("filename3", open("filePath3", "rb")) }Natürlich können Sie auch eine Dateianfrage wie diese senden
{ "field1" : open("filePath1", "rb").read()) }Der Dateiname hier Der Wert ist Feld1
2.2, Dateiparameter des Tupellistentyps
Tatsächlich ist die Form der Tupelliste grundsätzlich dieselbe wie die des Wörterbuchs, außer dass die äußerste Verpackung unterschiedlich ist Die Wörterbuchparameterform wird schließlich in eine Tupelspaltenform umgewandelt. Die von der offiziellen Website empfohlene Verwendung lautet wie folgt:[ ("field1" : ("filename1", open("filePath1", "rb"))), ["field2" : ("filename2", open("filePath2", "rb"), "image/jpeg")], ("field3" : ("filename3", open("filePath3", "rb"), "image/jpeg", {"refer" : "localhost"})) ]Die Unterelemente in der Liste können Tupel oder Listen sein; die Einleitungsform wird ebenfalls unterstützt hier wie folgt:
[ ("field1" : open("filePath1", "rb"))), ##filename 使用的是filepath的文件名 ("field2" : open("filePath2", "rb").read())) ##filename 使用的是键值,即 field2 ]3. Senden Sie mehrere Dateien in einem einzigen Feld [d. h. beim Hochladen von Dateien auf „Multi“ einstellen -select]
3.1. Wörterbuchparameterform
{ "field1" : [ ("filename1", open("filePath1", "rb")), ("filename2", open("filePath2", "rb"), "image/png"), open("filePath3", "rb"), open("filePath4", "rb").read() ] }
3.2. Tupellistenformular
[ ("field1" , ("filename1", open("filePath1", "rb"))), ("field1" , ("filename2", open("filePath2", "rb"), "image/png")), ("field1" , open("filePath3", "rb")), ("field1" , open("filePath4", "rb").read()) ]
Bei Anfragen, die in den beiden oben genannten Formularen gesendet werden, befinden sich alle Dateien im selben Feld. Der Hintergrunddienst kann alle Dateien abrufen Objekte aus dem Feld Feld1
4. Gemeinsame Datenfelder gleichzeitig senden
Das Obige beschreibt die Verwendung von Dateiinhaltsanfragen und manchmal senden wir auch Dateien Es ist notwendig, normale Datenfelder zu senden. Zu diesem Zeitpunkt können die normalen Datenfelder wie folgt direkt im Datenparameter gespeichert werden:
data = {"k1" : "v1"}
files = {
"field1" : open("1.png", "rb")
}
r = requests.post("http://httpbin.org/post", data, files=files)
Verwandte Empfehlungen:
Python implementiert eine ultraeinfache Videoobjekt-Extraktionsfunktion
Beispiel für Python, das das Ping einer bestimmten IP implementiert
Das obige ist der detaillierte Inhalt vonBeispiel für Python, der Anfragen zum Senden/Hochladen mehrerer Dateien implementiert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!