Django - Databas

Innehållsförteckning
När modellen och allt som är relaterat till den har fastställts är nästa aspekt att ta hänsyn till hur de olika fälten interagerar med databasen.
När vi talar om databasens beteende hänvisar vi till hur vi måste se hur data är förberedda för att lagras, hur vi gör jämförelser med datatyperna för Pytonorm med vilka deras värden representeras i vår ansökan i Django.
db_type (själv, anslutning)
Denna metod åsidosätts sällan av applikationsklasser och underklasser, den returnerar en sträng som innehåller specifik databasdata som styr hur kolumnerna i vissa fält skapas.
Det är viktigt att nämna att värdet som returneras med denna metod är särskilt för backend databas som används i programmet, så om vi bestämmer oss för att använda den i projekt med olika databasbackends måste vi få värdet på anslutningen med connection.settings_dict ['ENGINE']
Låt oss se i följande bild hur vi kan översätta till kod den grundläggande användningen av denna metod:

När vi analyserar koden ser vi att om databasmotorn är postgreSQL vi kommer att returnera ett värde för fältet, annorlunda än om det är en annan motor som t.ex. MySQL, så vi kan se ett litet exempel på användbarheten av denna metod.
get_prep_value (själv, värde)
Detta är en metod som fungerar som grund för andra metoder som måste förbereda data för användning av databasen.
I de flesta fall konverteringen av pythonobjekt till enklare data som kan överföras till databasen utgör inte ett stort problem och vi kan använda standardkonverteringen, men när vi vill göra mer komplexa konverteringar som en datortyp kan vi använda den här metoden för att ta hand om det arbetet, i följande grafik har vi ett sätt att uppnå detta som vi har beskrivit.

I exemplet när du definierar en fälttyp DurationField vi skriver över metoden get_prep_value () så att det tar datumobjektet och omvandlar det till decimalvärden för att kunna använda det i databasen utan ytterligare komplikationer.
get_db_prep_value (själv, värde, anslutning, förberedd = falskt)
Det finns fall där vår applikation körs i mer än en databasmotor, för denna metod gör att vi kan förbereda data baserat på motorn, tack vare connection.settings_dict ['ENGINE'] vi kan införliva olika fall beroende på motor.
Ett exempel är när vi arbetar med postgreSQL, den här motorn kan hantera datumobjekten direkt, så om vi upptäcker att det är det kan vi skicka värdet direkt, låt oss se i exemplet nedan hur vi kombinerar denna metod och den föregående till uppnå ett mer robust resultat:

Med detta avslutar vi handledningen, med vetskap om att vi kan styra databasens beteende i Django med hjälp av metoderna för att förbereda data för modellens fält.Gillade du och hjälpte denna handledning?Du kan belöna författaren genom att trycka på den här knappen för att ge honom en positiv poäng

Du kommer att bidra till utvecklingen av webbplatsen, dela sidan med dina vänner

wave wave wave wave wave