Spisie treści
Po ustaleniu modelu i wszystkiego, co z nim związane, następnym aspektem, który należy wziąć pod uwagę, jest interakcja różnych pól z bazą danych.Mówiąc o zachowaniu bazy, mamy na myśli sposób, w jaki musimy zobaczyć, w jaki sposób dane są przygotowane do przechowywania, sposób, w jaki dokonujemy porównań z typami danych Pyton z jakimi ich wartości są reprezentowane w naszej aplikacji w Django.
db_type (własne, połączenie)
Ta metoda jest rzadko zastępowana przez klasy i podklasy aplikacji, zwraca ciąg znaków zawierający określone dane bazy danych, które kontrolują sposób tworzenia kolumn określonych pól.
Należy wspomnieć, że wartość zwracana tą metodą jest szczególna dla backend bazy danych wykorzystywanej w aplikacji, więc jeśli decydujemy się na jej wykorzystanie w projektach z różnymi backendami bazodanowymi musimy uzyskać wartość połączenia za pomocą connection.settings_dict ['SILNIK']
Zobaczmy na poniższym obrazku, jak możemy przetłumaczyć na kod podstawowe zastosowanie tej metody:
get_prep_value (self, value)
Jest to metoda, która służy jako podstawa dla innych metod, które muszą przygotować dane do wykorzystania przez bazę danych.
W większości przypadków konwersja obiekty Pythona na prostsze dane, które można przenieść do bazy danych, nie stanowi większego problemu i możemy skorzystać ze standardowej konwersji, jednak gdy chcemy dokonać bardziej złożonych konwersji, takich jak typ daty, możemy tą metodą zająć się tą pracą, na poniższej grafice mamy sposób na osiągnięcie tego, który opisaliśmy.
get_db_prep_value (self, value, connection, przygotowane = False)
Zdarzają się przypadki, w których nasza aplikacja działa w więcej niż jednym silniku bazy danych, gdyż ta metoda pozwala nam na przygotowanie danych w oparciu o silnik, dzięki connection.settings_dict ['SILNIK'] w zależności od silnika możemy uwzględnić różne przypadki.
Przykładem jest praca z postgreSQL, ten silnik może bezpośrednio obsługiwać obiekty daty, więc jeśli wykryjemy, że to jest to, możemy bezpośrednio przekazać wartość, zobaczmy na poniższym przykładzie jak łączymy tę metodę i poprzednią do osiągnąć wynik bardziej solidny: