Django - Database

Sommario
Una volta stabilito il modello e tutto ciò che è correlato ad esso, il prossimo aspetto da tenere in considerazione è come i diversi campi interagiscono con il database.
Quando si parla del comportamento del database, ci riferiamo al modo in cui dobbiamo vedere come i dati vengono preparati per essere archiviati, al modo in cui facciamo confronti con i tipi di dati di Pitone con cui i loro valori sono rappresentati nella nostra applicazione in Django.
db_type (auto, connessione)
Questo metodo viene raramente sovrascritto dalle classi e sottoclassi dell'applicazione, restituisce una stringa contenente dati di database specifici che controlla come vengono create le colonne di determinati campi.
È importante ricordare che il valore restituito con questo metodo è particolare per il backend database utilizzato nell'applicazione, quindi se decidiamo di utilizzarlo in progetti con backend di database diversi dobbiamo ottenere il valore della connessione utilizzando connection.settings_dict ['MOTORE']
Vediamo nell'immagine seguente come possiamo tradurre in codice l'utilizzo base di questo metodo:

Analizzando il codice vediamo che se il motore del database è postgreSQL restituiremo un valore per il campo, diverso da se si tratta di un altro motore come MySQL, quindi possiamo vedere un piccolo esempio dell'utilità di questo metodo.
get_prep_value (auto, valore)
Questo è un metodo che funge da base per altri metodi che devono preparare i dati per l'utilizzo da parte del database.
Nella maggior parte dei casi la conversione di oggetti pitone a dati più semplici che possono essere trasferiti al database non rappresenta un grosso problema e possiamo usare la conversione standard, tuttavia quando vogliamo fare conversioni più complesse come un tipo di data possiamo usare questo metodo per occuparci di quel lavoro, nel grafico seguente abbiamo un modo per ottenere ciò che abbiamo descritto.

Nell'esempio quando si definisce un tipo di campo Campo Durata sovrascriviamo il metodo get_prep_value() in modo che prenda l'oggetto data e lo trasformi in valori decimali per poterlo utilizzare nel database senza ulteriori complicazioni.
get_db_prep_value (self, value, connection, preparato = False)
Ci sono casi in cui la nostra applicazione gira in più di un motore di database, per questo questo metodo ci permette di preparare i dati in base al motore, grazie al connection.settings_dict ['MOTORE'] possiamo incorporare casi diversi a seconda del motore.
Un esempio è quando lavoriamo con PostgreSQL, questo motore può gestire direttamente gli oggetti date, quindi se rileviamo che è così, possiamo passare direttamente il valore, vediamo nell'esempio sotto come combiniamo questo metodo e il precedente per ottenere un risultato più robusto:

Con questo finiamo il tutorial, sapendo che possiamo controllare il comportamento del database in Django utilizzando le modalità di preparazione dei dati dei campi di un modello.Ti è piaciuto e hai aiutato questo Tutorial?Puoi premiare l'autore premendo questo pulsante per dargli un punto positivo

Aiuterete lo sviluppo del sito, condividere la pagina con i tuoi amici

wave wave wave wave wave