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