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:
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.
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: