Django - Database

Indholdsfortegnelse
Når modellen og alt, der er relateret til den, er etableret, er det næste aspekt, der skal tages i betragtning, hvordan de forskellige felter interagerer med databasen.
Når vi taler om databasens adfærd, refererer vi til den måde, hvorpå vi skal se, hvordan dataene er forberedt til at blive lagret, den måde, hvorpå vi kan sammenligne med datatyperne af Python hvormed deres værdier er repræsenteret i vores ansøgning i Django.
db_type (selv, forbindelse)
Denne metode tilsidesættes sjældent af applikationsklasser og underklasser, den returnerer en streng, der indeholder specifikke databasedata, der styrer, hvordan kolonnerne i bestemte felter oprettes.
Det er vigtigt at nævne, at værdien, der returneres med denne metode, er særlig for bagende database, der bruges i applikationen, så hvis vi beslutter os for at bruge den i projekter med forskellige database backends, skal vi opnå værdien af ​​forbindelsen vha. connection.settings_dict ['ENGINE']
Lad os se i det følgende billede, hvordan vi kan oversætte til kode den grundlæggende brug af denne metode:

Når vi analyserer koden, ser vi, at hvis databasemotoren er postgreSQL vi vil returnere en værdi for feltet, forskellig fra hvis det er en anden motor som f.eks MySQL, så vi kan se et lille eksempel på nytten af ​​denne metode.
get_prep_value (selv, værdi)
Dette er en metode, der tjener som grundlag for andre metoder, der skal forberede dataene til brug i databasen.
I de fleste tilfælde konverteringen af python -objekter til enklere data, der kan overføres til databasen, repræsenterer ikke et stort problem, og vi kan bruge standardkonverteringen, men når vi vil lave mere komplekse konverteringer, f.eks. en datotype, kan vi bruge denne metode til at tage sig af det arbejde, i den følgende grafik har vi en måde at opnå dette, som vi har beskrevet.

I eksemplet, når du definerer en felttype VarighedFelt vi overskriver metoden get_prep_value () så det tager datoobjektet og omdanner det til decimalværdier for at kunne bruge det i databasen uden yderligere komplikationer.
get_db_prep_value (selv, værdi, forbindelse, forberedt = falsk)
Der er tilfælde, hvor vores applikation kører i mere end én databasemotor, for denne metode giver os mulighed for at forberede data baseret på motoren takket være connection.settings_dict ['ENGINE'] vi kan inkorporere forskellige sager afhængigt af motoren.
Et eksempel er, når vi arbejder med postgreSQL, denne motor kan håndtere datoobjekterne direkte, så hvis vi opdager, at det er det, kan vi videregive værdien direkte, lad os se i eksemplet herunder, hvordan vi kombinerer denne metode og den forrige til opnå et mere robust resultat:

Med dette afslutter vi selvstudiet, vel vidende at vi kan kontrollere databasens opførsel i Django ved hjælp af metoderne til at forberede dataene på felterne i en model.Kan du lide og hjælpe denne vejledning?Du kan belønne forfatteren ved at trykke på denne knap for at give ham et positivt punkt
wave wave wave wave wave