Dienen gespeicherte Bild in SQLAlchemy LargeBinary Spalte
Ich will eine Datei hochladen und in der Datenbank gespeichert. Ich erstellte eine LargeBinary Spalte.
logo = db.Column(db.LargeBinary)
Lese ich die Datei hochgeladen und in der Datenbank gespeichert.
files = request.files.getlist('file')
if files:
event.logo = files[0].file.read()
Ist dies die richtige Art und Weise zu speichern ein Bild als binary in die Datenbank? Wie konvertiere ich die binären Daten in ein Bild, um es anzuzeigen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie unbedingt brauchen, um das Bild zu speichern in der Datenbank, dann ja, das ist richtig. In der Regel sind die Dateien im Dateisystem abgelegt und der Pfad ist in der Datenbank gespeichert. Dies ist die bessere Lösung, da der web-server hat in der Regel eine effiziente Methode der Bereitstellung von Dateien aus dem Dateisystem, im Gegensatz zu der Anwendung, die das senden von großen blobs von Daten dynamisch.
Dienen die Bild, schreiben Sie eine Ansicht aus, bekommt die Bild-Daten und sendet Sie als Antwort.
Vorzugsweise dienen mit dem richtigen mimetype eher als
application/octet-stream
.Könnte man auch einbetten der Bilddaten direkt in der html-Verwendung eines data-uri. Dies ist sub-optimal, weil die Daten-uris gesendet werden, jedes mal, wenn die Seite gerendert wird, während eine image-Datei kann vom client zwischengespeichert.