Das Verfahren zum Speichern der Datei, die mit der Methode "save ()" auf den Server hochgeladen wurde, in der offiziellen Dokumentation Hochladen von Dateien - Flask-Dokumentation usw. Obwohl es eingeführt wurde, konnte ich keine Möglichkeit finden, es so zu lesen, wie es ist, ohne die Datei zu speichern, daher werde ich es als Memorandum belassen.
In Flask request.files.get ()
(oder request.files.getlist () [i] Wenn Sie
) ausführen, erhalten Sie ein Werkzeug-Objekt (http://werkzeug.pocoo.org/docs/0.12/datastructures/#werkzeug.datastructures.FileStorage). Der "Stream" dieses Objekts ist der Stream-Body der hochgeladenen Datei. Darüber hinaus scheint "FileStorage.stream" "io.BufferedIOBase" zu erben, daher sollte dieser Stream gekocht werden. Es scheint, dass es gebacken werden sollte.
Wenn Sie die hochgeladene Datei als Text lesen möchten, können Sie sie bequem mit io.TextIOWrapper
zu einem Textstrom machen. ..
Hier ist ein Beispiel, das eine von einem Client hochgeladene CSV-Datei liest.
import io
from flask import Flask, jsonify, request
@app.route('/upload/', methods=['POST'])
def csv_upload():
filebuf = request.files.get('csvfile')
if filebuf is None:
return jsonify(message='Bitte geben Sie eine Datei an'), 400
elif 'text/csv' != filebuf.mimetype:
return jsonify(message='Es werden nur CSV-Dateien akzeptiert'), 415
text_stream = io.TextIOWrapper(filebuf.stream, encoding='cp932')
for row in csv.reader(text_stream):
# do something
return jsonify(message=f'{filebuf.filename!r}Geladen'), 200
Recommended Posts