Für Lernzwecke erstelle ich eine Site mit Python + Flask. Ich möchte ein Bild aus der Datenbank wiederherstellen und auf dem Bildschirm anzeigen. Aber ein Schritt nach dem anderen.
Ich habe überhaupt keine Ahnung, wie ich ein Bild in meiner Datenbank speichern kann. Meine Suche ergab nur, dass ich einen bytea
-Typ in meiner Datenbank verwenden muss. Dann bekomme ich mein Bild und irgendwie (??) wandle es in ein Array von Bytes (bytea == Array von Bissen?) Und irgendwie (??) benutze dieses Array in einem Einfügebefehl.
Ich konnte (vielleicht) herausfinden, wie man es in Java macht ( hier ) und C # ( hier ) ), aber ich würde wirklich gerne Python benutzen, zumindest für den Moment.
Kann mir jemand helfen?
Auf dieser Seite gibt es jede Menge Fragen dieser Art. Aber die meisten (leicht über 85%) von ihnen werden geantwortet als "Sie sollten Bilder in Ihrer Datenbank nicht speichern, sie gehören in fs" und beantworten die Frage nicht. Der Rest löst mein Problem nicht ganz. Also bitte markieren Sie das nicht als Duplikat, wenn das Duplikat diese Art von Antwort hat.
Ich schreibe normalerweise keine vollständigen Beispielprogramme für Leute, aber Sie haben es nicht verlangt, und es ist ein ziemlich einfaches, also gehen Sie hier:
%Vor% Mit Python geschrieben 3.3. Wenn Sie Python 2.7 verwenden, müssen Sie die Datei lesen und in ein buffer
-Objekt konvertieren oder die Funktionen für große Objekte verwenden. Die Konvertierung in Python 2.6 und älter erfordert die Installation von argparse, wahrscheinlich andere Änderungen.
Sie sollten die Datenbankverbindungszeichenfolge in etwas ändern, das für Ihr System geeignet ist, wenn Sie es testen möchten.
Wenn Sie mit großen Bildern arbeiten, sollten Sie psycopg2s Unterstützung für große Objekte bytea
lo_import
für den Speicher, lo_export
für das direkte Schreiben in eine Datei und das große Objekt liest Funktionen zum Lesen kleiner Teile des Bildes gleichzeitig.
Sie können Pythons base64 zum Kodieren und Dekodieren beliebiger Binärzeichenfolgen in Text verwenden Zeichenfolgen.
Tags und Links python database image postgresql bytea