Django - Bestandsbeheer

Inhoudsopgave
Binnen de applicaties gaan we niet altijd elementen opslaan die specifiek zijn voor de Database, in dit geval verwijzen we naar bestanden, zoals PDF, XLS, afbeelding, enz.. Natuurlijk is er de mogelijkheid om het bestand als een binair bestand in de database op te slaan, maar deze praktijk is niet voldoende, omdat het een extra belasting genereert om ze te raadplegen en weer te geven, naast het bemoeilijken van het back-upproces omdat het een applicatie middelgrote database bereikt aanzienlijk gewicht.
Voor hem bestandsbeheer Django Het heeft een speciaal type veld, dat ons bij het declareren in het model toegang geeft tot verschillende methoden die de verwerking van de bestanden in onze applicatie zullen vergemakkelijken.
Veld Bestandsveld
Zoals we eerder vermeldden, hebben we een specifiek type veld waarmee: Django doet bestandsafhandeling, genoemd veldtype is Bestandsveld, dit veld heeft specifieke methoden om bestanden en hun verwerking op te slaan, we hebben een veldtype dat veel van zijn functionaliteit erft van Bestandsveld, Dit is de Afbeeldingsveld, die, zoals de naam al doet vermoeden, speciaal is voor het verwerken van afbeeldingen.
Methoden:
Hieronder zullen we op een eenvoudige en gedetailleerde manier enkele van de belangrijkste methoden beschrijven die we hebben in het type veld Bestandsveld.
get_directory_name (zelf)
Deze methode retourneert eenvoudig het relatieve pad dat samen met de bestandsnaam in de database wordt opgeslagen, standaard controleert deze methode het attribuut uploaden naar van het veld om de directory te bepalen, zelfs de subklassen respecteren dit gedrag, maar door een subklasse te maken kunnen we bepalen hoe het attribuut wordt gebruikt
get_filename (zelf, bestandsnaam)
Deze methode werkt op dezelfde manier als de vorige, behalve dat de focus verandert van het pad naar de naam van het bestand, wat het doet is de naam van het bestand ontvangen en het transformeren naar de manier waarop het in de database wordt opgeslagen , als we aanpassingen moeten doen Om de naam van het bestand in een specifieke structuur te wijzigen of een bepaalde bestandsextensie te genereren, moeten we bij het maken van een subklasse naar deze methode zoeken om de wijziging aan te brengen.
save_form_data (zelf, instantie, data)
Dit is een hulpprogramma-methode die wordt gebruikt voor formulieren, maar we kunnen het gebruiken als een snelkoppeling om de bestanden op te slaan, hiervoor accepteert het de instantie van het model, naast de informatie van het bestand, op deze manier extraheert de methode de benodigde informatie die nodig is om het bestand te uploaden.
delete_file (zelf, instantie, afzender)
Met deze methode kan het bestand worden verwijderd dat we eerder hebben geüpload, hoewel het een eenvoudige manier lijkt om deze taak uit te voeren, is het in werkelijkheid een iets complexer mechanisme vanwege het argument afzender die u als parameter verwacht, is niet bedoeld om afzonderlijk te worden aangeroepen.
We gaan een afbeelding zien van hoe deze methode werkt om een ​​duidelijker beeld te krijgen van waar we het over hebben:

Hiermee ronden we deze tutorial af, waardoor we een duidelijker beeld hebben van hoe we de bestanden in het model in Django dankzij het veld Bestandsveld en zijn methoden.Vond je deze Tutorial leuk en heb je eraan geholpen?Je kunt de auteur belonen door op deze knop te drukken om hem een ​​positief punt te geven

U zal helpen de ontwikkeling van de site, het delen van de pagina met je vrienden

wave wave wave wave wave