Django - Upravljanje datotekama

Sadržaj
Unutar aplikacija nećemo uvijek spremati elemente koji su specifični za bazu podataka, u ovom slučaju se pozivamo na datoteke, kao što su PDF, XLS, slike itd. Naravno, postoji mogućnost spremanja datoteke kao binarne datoteke u bazu podataka, međutim, ova praksa nije primjerena jer generira dodatno opterećenje za njihovo pregledavanje i prikaz, osim što otežava proces izrade sigurnosne kopije jer otežava baza podataka srednje veličine aplikacije doseže znatnu težinu.
Za njega upravljanje datotekama Django Ima posebnu vrstu polja koja nam prilikom deklariranja u modelu omogućuje pristup različitim metodama koje će olakšati rukovanje datotekama u našoj aplikaciji.
Polje FileField
Kao što smo već spomenuli, imamo određenu vrstu polja s kojom Django vrši rukovanje datotekama, navedeni tip polja je FileField, ovo polje ima posebne metode za spremanje datoteka i njihovu obradu, imamo vrstu polja koja nasljeđuje veći dio njegove funkcionalnosti FileField, Ovo je ImageField, što kao što mu ime govori, posebno je za rukovanje slikama.
Metode
U nastavku ćemo na jednostavan i detaljan način opisati neke od najvažnijih metoda koje imamo u vrsti polja FileField.
get_directory_name (self)
Ova metoda jednostavno vraća relativni put koji će biti pohranjen u bazi podataka zajedno s imenom datoteke, prema zadanim postavkama ova metoda provjerava atribut upload_to polja za određivanje direktorija, čak i potklase poštuju ovo ponašanje, međutim stvaranjem podklase možemo odrediti kako se atribut koristi
get_filename (self, naziv datoteke)
Ova metoda radi na sličan način kao i prethodna, samo što joj se fokus mijenja od puta do naziva datoteke, ono što radi je primanje naziva datoteke i njezino pretvaranje u način na koji će biti pohranjena u bazi podataka , ako moramo napraviti bilo kakvu prilagodbu Da bismo promijenili naziv datoteke u određenoj strukturi ili generirali određeno proširenje datoteke, prilikom izrade podklase moramo tražiti ovu metodu kako bismo unijeli promjenu.
save_form_data (self, instance, data)
Ovo je pomoćna metoda koja se koristi za obrasce, no možemo je koristiti kao prečac za spremanje datoteka, jer za prihvaćanje instance modela, osim podataka o datoteci, na ovaj način ekstrahira datoteku potrebne informacije koje su potrebne za učitavanje datoteke.
delete_file (sam, primjer, pošiljatelj)
Ova metoda omogućuje brisanje datoteke koju smo prethodno učitali, iako se čini da je to jednostavan način rješavanja ovog zadatka, doista je to malo složeniji mehanizam zbog argumenta pošiljatelj koji očekujete kao parametar, nije namijenjen pojedinačnom pozivanju.
Vidjet ćemo sliku kako ova metoda funkcionira kako bismo dobili jasniju viziju o čemu govorimo:

Ovime završavamo ovaj vodič, zahvaljujući kojem imamo jasniju ideju o tome kako možemo rukovati datotekama u modelu u Django zahvaljujući terenu FileField i njegove metode.Je li vam se svidio i pomogao ovaj vodič?Autor možete nagraditi pritiskom na ovaj gumb kako biste mu dali pozitivan bod

Vi ćete pomoći u razvoju web stranice, dijeljenje stranicu sa svojim prijateljima

wave wave wave wave wave