Django - база данни

Съдържание
След като моделът и всичко свързано с него е установено, следващият аспект, който трябва да се вземе предвид, е как различните полета взаимодействат с базата данни.
Когато говорим за поведението на базата данни, ние се позоваваме на начина, по който трябва да видим как данните са подготвени за съхранение, начина, по който правим сравнения с типовете данни на Python с които техните стойности са представени в нашето приложение в Джанго.
db_type (себе си, връзка)
Този метод рядко се заменя от класове на приложения и подкласове, той връща низ, съдържащ конкретни данни от базата данни, който контролира начина на създаване на колоните на определени полета.
Важно е да се спомене, че стойността, върната с този метод, е специфична за бекенд база данни, използвана в приложението, така че ако решим да я използваме в проекти с различни подложки на базата данни, трябва да получим стойността на връзката, използвайки connection.settings_dict ['ENGINE']
Нека видим на следващото изображение как можем да преведем в код основната употреба на този метод:

Когато анализираме кода, виждаме, че ако двигателят на базата данни е postgreSQL ще върнем стойност за полето, различна от ако това е друг двигател, като напр MySQL, така че можем да видим малък пример за полезността на този метод.
get_prep_value (себе си, стойност)
Това е метод, който служи като основа за други методи, които трябва да подготвят данните за използване от базата данни.
В повечето случаи преобразуването на обекти на python за по -прости данни, които могат да бъдат прехвърлени в базата данни, не представлява голям проблем и можем да използваме стандартното преобразуване, но когато искаме да направим по -сложни преобразувания като тип дата, можем да използваме този метод, за да се погрижим за тази работа, в следващата графика имаме начин да постигнем това, което описахме.

В примера при дефиниране на тип поле DurationField презаписваме метода get_prep_value () така че да вземе обекта date и да го трансформира в десетични стойности, за да може да го използва в базата данни без допълнителни усложнения.
get_db_prep_value (себе си, стойност, връзка, подготвено = невярно)
Има случаи, в които нашето приложение работи в повече от един механизъм за бази данни, тъй като този метод ни позволява да подготвяме данните въз основа на двигателя, благодарение на connection.settings_dict ['ENGINE'] можем да включим различни калъфи в зависимост от двигателя.
Пример е, когато работим с postgreSQL, този механизъм може да обработва обектите с дата директно, така че ако открием, че това е тя, можем да предадем стойността директно, нека видим в примера по -долу как комбинираме този метод и предишния с постигнете по -здрав резултат:

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