2014-11-17 9 views
5

In flask, wie kann ich Bilder liefern, die sich nicht im statischen Ordner befinden?Wie verknüpfe ich Bilder, die sich nicht im statischen Ordner in der Flasche befinden

speichere ich zur Zeit der Benutzer Fotos in einem Verzeichnis hochgeladen, die (On openshift, Bild momentan in dem Datenordner unter app-root/data Speichern und die Kolben-Dateien sind in app-root/repo/) außerhalb der Kolben-Ordner ist.

In meinen Vorlagen, wie kann ich die Bilddateien liefern?

Wie kann ich mithilfe von url_for auf diese Bilddateien verweisen, die sich außerhalb des Flask-Ordners befinden?

- data/ 
| 
    -- uploads/ 
- repo/ 
| 
    -- app/ 
    | 
    -- __init__.py 

Wie Sie den Datenordner außerhalb der Flasche App Ordner sehen können. Wie erzeuge ich Links zu Dateien, die in data/uploads (eine Ebene höher) aus dem flask-App-Verzeichnis gespeichert sind, ist die Frage?

+0

Könnten Sie bitte die Struktur Ihres Projekts (Verzeichnisbaum) und die Lösungen, die Sie bereits ausprobiert haben, angeben? – boh

Antwort

14

Sie haben die send_from_directory Funktion, die das tut, was Sie wollen, was ich tun würde, ist eine konstante MEDIA_FOLDER mit dem Pfad genannt erklären, wo die Mediendateien gespeichert sind und dann, das einzige, was Sie tun müssen, ist zu rufen Sie die Funktion wie folgt aus:

from config import MEDIA_FOLDER 

@app.route('/uploads/<path:filename>') 
def download_file(filename): 
    return send_from_directory(MEDIA_FOLDER, filename, as_attachment=True) 

Dann aufzurufen es, können Sie dies nur tun:

{{ url_for('download_file', filename='dogs.jpg') }} 

Sie weitere Informationen über diesehaben.

+0

Danke. Irgendeine Idee, wie ich gehen würde, um den Link für die Datei mit URL_for zu bekommen? –

+0

@sarul Ich habe gerade den Post bearbeitet, aber im Grunde musst du nur {{url_for ('download_file', filename = 'dogs.jpg')}}} zum Beispiel machen. –

+0

ich versuche, die url_for im src Teil meines img-Tags zu referenzieren und kann es immer noch nicht funktionieren. Ich habe meine Frage mit der Dateistruktur aktualisiert. Ich versuche im Wesentlichen, Dateipfade für Dateien zu generieren, die in Daten/Uploads von der Flask-App gespeichert sind, die in einem anderen Verzeichnis gespeichert ist. –