Spisie treści
Django obsługuje deklaratywny sposób ustawiania klas, z których będzie korzystał, co oznacza, że możemy tworzyć modele z metaklasy już zdefiniowane, dzięki którym możemy uzyskać podstawowe i zaawansowane funkcjonalności po prostu tworząc niestandardową klasę, to dzięki wszystkim narzędziom zawartym w struktura.Jedną z kwestii, która być może nam pozostaje, jest to, jak wiedzieć, w jaki sposób framework robi rzeczy, czyli w jakiej kolejności deklaruje atrybuty, które umieszczamy w klasach.
Sortowanie atrybutów klas
Kiedy używamy deklaratywnej składni, którą mamy dostępną w Django, może pojawić się niejasność i jest to kolejność przypisywania deklarowanych wartości, powodem tego jest to, że Pyton radzi sobie ze swoimi słownikami w bałaganiarski sposób; Normalnie nie stanowiłoby to większego problemu, jednak podczas obsługi przestrzeni nazw lub przestrzeni nazw, jeśli potrzebujemy wykonać określoną iterację atrybutów, ważne jest, aby znać kolejność, w jakiej wartości zostały przypisane, ponieważ nie mielibyśmy przeszkoda.
Aby mieć pełną kontrolę nad naszą aplikacją, możemy jakoś wiedzieć, w jakiej kolejności przypisywane są wartości, unikając w ten sposób konieczności nadawania dowolnej kolejności.
Aby osiągnąć tę kolejność, możemy zrobić, aby każdy atrybut niósł sam ślad swojej pozycji w sekwencji, w tym celu musimy sprawić, aby nasze klasy dziedziczyły po klasie bazowej, która może policzyć ile razy klasa jest tworzona i w ten sposób przypisać odpowiednia liczba do każdego z nich:
class BaseAttribute (object): creation_counter = 1 def __init __ (self): self.creation_counter = BaseAttribute.creation_counter BaseAttribute.creation_counter + = 1
W przykładzie kodu widzimy:
Każde wystąpienie Obiekt mieć przestrzeń nazw lub inną przestrzeń nazw niż klasy, więc każda instancja tej klasy będzie miała licznik tworzenia, którego możemy użyć do posortowania obiektów zgodnie z kolejnością, w jakiej zostały utworzone.
Może to nie jedyne rozwiązanie postawionego problemu, ale jest to sposób, w jaki Django sortuje pola modeli i formularzy.
Jak widzimy problem był tylko próbką tego, jak Django jako framework obsługuje klasy i ich zawartość, korzystając z zasobów Pythona.
Deklaracja klasy
Przy wszystkich klasach, które mamy w module, tworzenie klasy aplikacyjnej jest tak proste, jak zdefiniowanie podklasy i dodanie jej atrybutów.
Różne istniejące frameworki będą miały różne nazwy dla atrybutów klasy, a nawet będą miały różne wymagania dotyczące tego, jak klasy są wymagane lub formy i kombinacji, w których muszą być stosowane, może to osiągnąć punkt posiadania zarezerwowanych nazw, które mogłyby powodować konflikty, jeśli tworzony jest atrybut o tej nazwie. Problemy te są rzadkie, ponieważ poprzez dobrą praktykę musimy unikać tego typu sytuacji przy opracowywaniu nowych ram; generalną zasadą jest zapewnienie programistom jak największej elastyczności, dzięki czemu framework nie jest przeszkodą, a nie pomocą.
Na poniższym obrazku zobaczymy, jak deklarowana jest klasa Kontakt w aplikacji w Django:
POWIĘKSZAĆ
Kolejną rzeczą do zapamiętania jest to, że to jest kod Pyton, więc nie powinniśmy czuć się ograniczeni, ponieważ praktycznie każdy poprawny kod w Pythonie pomoże nam rozszerzyć nasze klasy.Podobał Ci się i pomógł ten samouczek?Możesz nagrodzić autora, naciskając ten przycisk, aby dać mu pozytywny punkt