Django - Управление на файлове

Съдържание
В рамките на приложенията не винаги ще запазваме елементи, които са специфични за базата данни, в този случай се позоваваме на файлове, като например PDF, XLS, изображение и др. Разбира се, има възможност за запазване на файла като двоичен файл в базата данни, но тази практика не е адекватна, тъй като генерира допълнително натоварване, за да ги провери и покаже, в допълнение към затрудняването на процеса на архивиране, тъй като прави приложение средно голяма база данни достига значително тегло.
За него управление на файлове Джанго Той има специален тип поле, което при декларирането му в модела ни позволява достъп до различни методи, които ще улеснят обработката на файловете в нашето приложение.
Поле FileField
Както споменахме преди, имаме специфичен тип поле, с което Джанго извършва обработка на файлове, споменатият тип поле е FileField, това поле има специфични методи за съхраняване на файлове и тяхната обработка, имаме тип поле, което наследява голяма част от неговата функционалност FileField, Това е ImageField, което, както подсказва името му, е специално за работа с изображения.
Методи
По -долу ще опишем по прост и подробен начин някои от най -важните методи, които имаме в типа поле FileField.
get_directory_name (себе си)
Този метод просто връща относителния път, който ще се съхранява в базата данни заедно с името на файла, по подразбиране този метод проверява атрибута upload_to на полето за определяне на директорията, дори подкласовете зачитат това поведение, но като направим подклас можем да определим как се използва атрибута
get_filename (себе си, име на файл)
Този метод работи по подобен начин на предишния, с изключение на това, че фокусът му се променя от пътя към името на файла, това, което прави, е да получи името на файла и да го трансформира в начина, по който ще се съхранява в базата данни , ако трябва да направим някакво персонализиране За да променим името на файла в определена структура или да генерираме конкретно разширение на файла, когато правим подклас, трябва да търсим този метод, за да направим промяната.
save_form_data (self, instance, data)
Това е помощен метод, който се използва за формуляри, но можем да го използваме като пряк път за съхраняване на файловете, за това той приема екземпляра на модела, в допълнение към информацията за файла, по този начин методът извлича необходимата информация, необходима за качване на файла.
delete_file (себе си, екземпляр, подател)
Този метод позволява изтриването на файла, който вече сме качили, въпреки че изглежда лесен начин за справяне с тази задача, той наистина е малко по -сложен механизъм поради аргумента изпращач който очаквате като параметър, не е предназначен да се извиква индивидуално.
Ще видим изображение как работи този метод, за да получим по -ясна представа за това, за което говорим:

С това завършваме този урок, благодарение на който имаме по -ясна представа как можем да обработваме файловете в модела в Джанго благодарение на полето FileField и неговите методи.Хареса ли ви и помогнахте на този урок?Можете да възнаградите автора, като натиснете този бутон, за да му дадете положителна точка
wave wave wave wave wave