Wenn wir über das Verhalten der Datenbank sprechen, beziehen wir uns auf die Art und Weise, wie wir sehen sollten, wie die Daten für die Speicherung vorbereitet werden, wie wir Vergleiche mit den Python- Datentypen anstellen, in denen ihre Werte dargestellt werden unsere Bewerbung in Django .
db_type (self, connection)
Diese Methode wird selten von den Klassen und Unterklassen der Anwendungen überschrieben. Sie gibt eine Zeichenfolge zurück, die bestimmte Datenbankdaten enthält, die sie steuern, wenn die Spalten der festgelegten Felder erstellt werden.
Es ist wichtig zu erwähnen, dass der mit dieser Methode zurückgegebene Wert speziell für das in der Anwendung verwendete Datenbank- Backend gilt. Wenn wir uns also für die Verwendung in Projekten mit verschiedenen Datenbank-Backends entscheiden, müssen wir den Wert der Verbindung mit connection.settings_dict [ermitteln. ‘ENGINE’]
In der folgenden Abbildung sehen wir, wie wir die grundlegende Verwendung dieser Methode in Code umsetzen können:
Wenn wir den Code analysieren, sehen wir, dass wenn das Datenbankmodul PostgreSQL ist, wir einen Wert für das Feld zurückgeben, anders als wenn es ein anderes Modul wie MySQL ist , sodass wir ein kleines Beispiel für die Nützlichkeit dieser Methode sehen können.
get_prep_value (self, value)
Dies ist eine Methode, die als Grundlage für andere Methoden dient, die die Daten vorbereiten müssen, die von der Datenbank verwendet werden sollen.
In den meisten Fällen stellt die Konvertierung von Python-Objekten in einfachere Daten, die in die Datenbank übertragen werden können, kein großes Problem dar, und wir können die Standardkonvertierung verwenden, wenn wir jedoch komplexere Konvertierungen durchführen möchten, z. B. einen Datumstyp Wir können diese Methode verwenden, um diese Arbeit zu erledigen. In der folgenden Grafik haben wir eine Möglichkeit, dies zu erreichen, die wir beschrieben haben.
In dem Beispiel, in dem ein Feldtyp DurationField definiert wird, wird die Methode get_prep_value () überschrieben, sodass das Datumsobjekt in Dezimalwerte umgewandelt wird, um es ohne weitere Komplikationen in einer Datenbank verwenden zu können.
get_db_prep_value (self, value, connection, prepare = False)
Es gibt Fälle, in denen unsere Anwendung auf mehr als einer Datenbank-Engine ausgeführt wird. Mit dieser Methode können wir die Daten basierend auf der Engine aufbereiten. Dank der connection.settings_dict [‘ENGINE’] können wir verschiedene Fälle entsprechend integrieren der Motor.
Wenn wir beispielsweise mit postgreSQL arbeiten, kann diese Engine Datumsobjekte direkt verarbeiten. Wenn wir also feststellen, dass dies der Fall ist, können wir den Wert direkt übergeben. Sehen wir uns im folgenden Beispiel an, wie wir diese und die vorherige Methode kombinieren, um ein Ergebnis zu erzielen robuster:
Damit haben wir das Tutorial beendet, in dem Wissen, dass wir das Verhalten der Datenbank in Django mithilfe der Methoden zur Aufbereitung der Daten der Felder eines Modells steuern können.