Beim Einrichten eines Flask-Servers können wir versuchen, den von
hochgeladenen Dateibenutzer zu empfangen %Vor% Wenn ich mir die Klein
-Dokumentation anschaue, habe ich http://klein.readthedocs.io/en/latest/examples/staticfiles.html
gesehen, aber es scheint, als würde ich eine Datei vom Webservice bereitstellen, anstatt eine Datei zu erhalten, die auf den Webservice hochgeladen wurde. Wenn ich meinen Klein
Server in die Lage versetzen möchte, eine abc.jpg
zu erhalten und diese im Dateisystem zu speichern, gibt es dann irgendeine Dokumentation, die mich auf dieses Ziel hinführen kann?
Als Liam Kelly
kommentiert, sollten die Snippets aus diesem Post funktionieren. Die Verwendung von cgi.FieldStorage
ermöglicht das einfache Senden von Dateimetadaten, ohne sie explizit zu senden. Ein Klein / Twisted-Ansatz würde etwa so aussehen:
Aus irgendeinem Grund gibt meine Python 3.4 (Ubuntu 14.04) Version von cgi.FieldStorage
nicht die korrekten Ergebnisse zurück. Ich habe das auf Python 2.7.11 getestet und es funktioniert gut. Mit dieser Aussage könnten Sie auch den Dateinamen und andere Metadaten im Frontend erfassen und in einem Ajax-Call an klein senden. Auf diese Weise müssen Sie nicht zu viel Verarbeitung im Backend durchführen (was normalerweise eine gute Sache ist). Alternativ können Sie herausfinden, wie Sie die von werkzeug bereitgestellten Dienstprogramme verwenden. Die Funktionen werkzeug.secure_filename
und request.files
(dh FileStorage
) sind nicht besonders schwierig zu implementieren oder neu zu erstellen.
Tags und Links python web-services klein-mvc