Das hochladen eines Bildes von der python-client, um eine Flasche zu server
Ich bin mit requests
und requests_toolbelt
um ein Bild zu senden, um die cloud-und bisher habe ich so etwas
import requests
import json
from requests_toolbelt import MultipartEncoder
m = MultipartEncoder(
fields={"user_name":"tom", "password":"tom", "method":"login",
"location":"landing", "cam_id":"c00001", "datetime":"hammaTime!"
,'image': ('filename', open('image.jpg', 'rb'))}
)
r = requests.post(url, data=m)
print r.text
Nachdem es auf den server, wie bekomme ich wieder ein Wörterbuch der etwas Verwertbares? Die toolbelt docs nur zeigen, wie die post, nicht zu behandeln, wie es am anderen Ende. Irgendwelche Ratschläge?
- Hat man sich bei der Flask Quickstart noch? Es behandelt, wie Sie Zugang zu Daten einschließlich der hochgeladenen Dateien.
- es gibt auch ein sehr wertvoller Abschnitt über das Hochladen von Dateien, die ich verlinkt in meiner Antwort. Die Kurzanleitung ist gut, aber wenn OP ist die Speicherung von Dateien auf alle Namen, die Sie sollten Lesen Sie den vollständigen Dokumentation.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sehen Sie ein Beispiel von Flask-server die akzeptiert, dass BEITRÄGE wie den, auf den Sie versuchen zu machen, auf HTTPbin. Wenn Sie so etwas wie:
Du wirst sehen, dass alles, was in Ihrem Beitrag, sollte im Wörterbuch.
Mit HTTPBin die Quelle, Sie können dann sehen, dass die
form
Abschnitt erzeugt wirdrequest.form
. Können Sie abrufen, den rest Ihrer Daten. Dann können Sierequest.files
Zugriff auf das Bild, das Sie hochladen möchten.Beispiel Kolben-route Prozedur würde wie folgt Aussehen:
Lesen Sie in Hochladen Von Dateien Dokumentation, obwohl. Es ist wirklich von unschätzbarem Wert bei der Verwendung von gemeinsamen mustern in der Flasche.
requests-toolbelt
kann nur senden Sie die Datei auf dem server, aber es ist bis zu Ihnen, zu speichern, die auf der server-Seite und dann wieder sinnvolles Ergebnis. Sie können erstellen Sie eine flask Endpunkt zu behandeln, die Datei hochzuladen, bringen Sie das gewünschte Ergebnis-dictionary als JSON konvertieren und dann die JSON zurück zu dict auf der client-Seite mitjson.loads
.Sehen Kolben Dokumentation für mehr info auf den Datei-Upload.
Außerdem müssen Sie den mime-Typ, während darunter das Bild in
MultipartEncoder
- und content-type im header, während die Anforderung. (Ich bin mir nicht sicher, ob Sie können sogar Bilder hochladen mit MultipartEncoder. Ich war erfolgreich mit dem nur-text-Dateien.)