Wie man Binärdatei, die durch Flasche empfangen wird, in postgres speichern kann

Ich habe derzeit eine Flask-Route, die Datei-Inhalte über POST enthüllt, und das speichert sie auf dem Dateisystem, zB:

@app.route('/upload', methods=['POST']) def upload_file(): def allowed_file(f): return True file = request.files['file'] if file and allowed_file(file.filename): filename = secure_filename(file.filename) file.save(os.path.join(upload_dir(), filename)) return "", 200 

Ich möchte es in einer BYTEA-Spalte in postgres speichern, ich bin mir nicht sicher, wie man das "data" -Argument an die insert-Anweisung bindet

 db.session.execute(""" INSERT INTO uploaded_file(id, name, type, data) VALUES (:id, :name, :type, %(:data)s)""", {"id": str(id),"name": file.filename,"type": "...","data": ???} 

One Solution collect form web for “Wie man Binärdatei, die durch Flasche empfangen wird, in postgres speichern kann”

Die Objekte in request.files sind FileStorage- Objekte. Sie haben die gleichen Methoden wie normale Dateiobjekte in Python .

Also, um den Inhalt der Datei als Binär zu bekommen, mach einfach das:

 data = request.files['file'].read() 

Dann übergeben Sie diesen Parameter in den INSERT .

Python ist die beste Programmiersprache der Welt.