Django – Dateiverwaltung

In den Anwendungen werden nicht immer datenbankspezifische Elemente gespeichert. In diesem Fall verweisen wir auf Dateien wie PDF, XLS, Bild usw. Natürlich gibt es die Möglichkeit, die Datei als Binärdatei in der Datenbank zu speichern. Diese Vorgehensweise ist jedoch nicht ausreichend, da sie eine zusätzliche Last zum Abrufen und Anzeigen generiert und den Sicherungsvorgang behindert, da eine Anwendung erstellt wird von mittlerer größe erreicht die datenbank ein beachtliches gewicht.

Für die Verwaltung der Dateien hat Django einen speziellen Feldtyp, der es uns ermöglicht, auf verschiedene Methoden zuzugreifen, die die Handhabung der Dateien in unserer Anwendung erleichtern, wenn sie im Modell deklariert sind.

Feld “FileField”

Wie bereits erwähnt, haben wir einen bestimmten Feldtyp , mit dem Django die Dateiverwaltung durchführt. Dieser Feldtyp ist FileField . Dieses Feld verfügt über bestimmte Methoden zum Speichern der Dateien und zu ihrer Verarbeitung. Wir haben einen Feldtyp , der einen großen Teil davon erbt FileField- Funktionalität, dies ist das ImageField , das, wie der Name schon sagt, speziell für die Bildverarbeitung ist.

Methoden

Als nächstes beschreiben wir auf einfache und detaillierte Weise einige der wichtigsten Methoden, die wir im Feldtyp FileField haben .

get_directory_name (self)

Diese Methode gibt einfach den relativen Pfad zurück, der in der Datenbank zusammen mit dem Namen der Datei gespeichert wird. Standardmäßig überprüft diese Methode das upload_to- Attribut des Feldes, um das Verzeichnis zu bestimmen. Selbst Unterklassen berücksichtigen dieses Verhalten, wenn sie jedoch eine Unterklasse erstellen Wir können bestimmen, wie das Attribut verwendet wird

get_filename (self, filename)

Diese Methode funktioniert ähnlich wie die vorherige, nur der Fokus ändert sich vom Pfad zum Dateinamen. Sie empfängt den Namen der Datei und wandelt sie in die Form um, in der sie in der Datenbank gespeichert wird, wenn Anpassungen erforderlich sind Um den Namen der Datei in einer bestimmten Struktur zu ändern oder eine bestimmte Dateierweiterung zu generieren, müssen wir beim Erstellen einer Unterklasse nach dieser Methode suchen, um die Änderung vorzunehmen.

See also  So deaktivieren Sie die geschützte Ansicht von Word- und Excel-Dokumenten

save_form_data (self, instance, data)

Dies ist eine nützliche Methode, die für die Formulare verwendet wird. Wir können sie jedoch als Verknüpfung zum Speichern der Dateien verwenden, da sie zusätzlich zu den Dateiinformationen die Instanz des Modells akzeptiert. Auf diese Weise extrahiert die Methode die erforderlichen Informationen es erfordert den Upload der Datei.

delete_file (self, instance, sender)

Mit dieser Methode können Sie die zuvor hochgeladene Datei löschen. Dies scheint zwar eine einfache Möglichkeit zu sein, ist jedoch aufgrund des erwarteten Absenderarguments als Parameter ein etwas komplexerer Mechanismus, der nicht für den einzelnen Aufruf vorgesehen ist.

Sehen wir uns ein Bild davon an, wie diese Methode funktioniert, um uns eine klarere Vorstellung davon zu geben, wovon wir sprechen:

django_manejo_archivos.jpg

Damit haben wir dieses Tutorial beendet, dank dessen wir eine klarere Vorstellung davon haben, wie wir die Dateien im Django- Modell dank des FileField- Felds und seiner Methoden verwalten können.

administrator

Leave a Reply

Your email address will not be published. Required fields are marked *