Python / HTML: Wie kann ich eine Datei von einem Ordner im anderen anzeigen?


22.07.2023, 22:07

Die Bilder und Videos befinden sich auf einer Datenbank, können somit nicht statisch angezeigt werden.

1 Antwort

Das Symbol post.file.url kennzeichnet eine Variable, die einen Pfad beinhaltet. Du kannst das Symbol nicht so behandeln, als sei es selbst ein Pfad.

Normalerweise würde man Bilder als statische Ressourcen verwalten. Das heißt, du würdest dein Bild in einer Ordnerstruktur wie dieser lagern:

myProject
  /static
    /myProject
      /profile
        /image.jpg

Das Bild wird dementsprechend auch geladen:

{% load static %}
<img alt="Some image description ..." class="image-style" src="{% static "myProject/profile/image.jpg" %}">

Mehr dazu kannst du in der Dokumentation nachlesen.


DerThielo37 
Beitragsersteller
 22.07.2023, 22:07

Danke für deine Antwort, aber meine Bilder/Videos befinden sich in einer Datenbank, können also nicht statisch angezeigt werden.

regex9  22.07.2023, 22:47
@DerThielo37

Schau einmal nach, welcher konkrete Wert in post.file.url steht. Diesen musst du anpassen. Wenn es sich bspw. um einen relativen Pfad wie "image.jpg" handelt, sollte eine Stringkonkatenation genügen.

{{ "../blog/" + post.file.url }}

In anderen Fällen benötigst du String-Funktionen (replace u.ä.).

Die Entscheidung, Bilder in der Datenbank zu hinterlegen, würde ich allerdings noch einmal hinterfragen. Der Zugriff über das Dateisystem ist schneller und du kannst die Dateien besser (z.B. für ein Caching oder dynamische Kompressionsalgorithmen) separieren. Es würde genügen, den Dateipfad in der Datenbank zu sichern.