Cuprins
Odată ce modelul și tot ceea ce este legat de acesta este stabilit, următorul aspect de luat în considerare este modul în care diferitele câmpuri interacționează cu baza de date.Când vorbim despre comportamentul bazei de date, ne referim la modul în care trebuie să vedem modul în care datele sunt pregătite pentru a fi stocate, modul în care facem comparații cu tipurile de date ale Piton cu care valorile lor sunt reprezentate în aplicația noastră în Django.
db_type (auto, conexiune)
Această metodă este rar suprascrisă de clasele de aplicații și subclasele, returnează un șir care conține date specifice bazei de date care controlează modul în care sunt create coloanele anumitor câmpuri.
Este important de menționat că valoarea returnată cu această metodă este specială pentru backend baza de date utilizată în aplicație, deci dacă decidem să o folosim în proiecte cu backend-uri de baze de date diferite, trebuie să obținem valoarea conexiunii folosind connection.settings_dict ['MOTOR']
Să vedem în imaginea următoare cum putem traduce în cod utilizarea de bază a acestei metode:
Când analizăm codul, vedem că dacă motorul bazei de date este postgreSQL vom returna o valoare pentru câmp, diferită de dacă este un alt motor cum ar fi MySQL, deci putem vedea un mic exemplu de utilitate a acestei metode.
get_prep_value (auto, valoare)
Aceasta este o metodă care servește ca bază pentru alte metode care trebuie să pregătească datele pentru a fi utilizate de baza de date.
În majoritatea cazurilor conversia obiecte piton la date mai simple care pot fi transferate în baza de date nu reprezintă o problemă majoră și putem folosi conversia standard, totuși, atunci când dorim să facem conversii mai complexe, cum ar fi un tip de dată, putem folosi această metodă pentru a ne ocupa de acea muncă, în graficul următor avem o modalitate de a realiza acest lucru pe care l-am descris.
În exemplu când se definește un tip de câmp DurationField suprascriem metoda get_prep_value () astfel încât să ia obiectul de dată și să-l transforme în valori zecimale pentru a-l putea folosi în baza de date fără alte complicații.
get_db_prep_value (auto, valoare, conexiune, pregătit = fals)
Există cazuri în care aplicația noastră rulează în mai multe motoare de baze de date, pentru aceasta această metodă ne permite să pregătim datele pe baza motorului, datorită connection.settings_dict ['MOTOR'] putem încorpora diferite cazuri în funcție de motor.
Un exemplu este când lucrăm cu postgreSQL, acest motor poate gestiona direct obiectele de dată, deci dacă detectăm că este, putem trece direct valoarea, să vedem în exemplul de mai jos cum combinăm această metodă cu cea anterioară pentru obțineți un rezultat mai robust:
Cu aceasta terminăm tutorialul, știind că putem controla comportamentul bazei de date din Django folosind metodele de pregătire a datelor câmpurilor unui model.V-a plăcut și ați ajutat acest tutorial?Puteți recompensa autorul apăsând acest buton pentru a-i oferi un punct pozitiv