Bazy danych są jedną z najpopularniejszych technologii wykorzystywanych do gromadzenia i organizowania danych, ponieważ pozwalają na łatwy dostęp do danych, zarządzanie i aktualizację. Jednak te bazy danych wymagają systemu zarządzania, aby mogły wykonywać te zadania. Przeważnie język SQL służy do wykonywania operacji w bazie danych, jednak wraz ze wzrostem i złożonością aplikacji niezwykle trudno jest mieć wyobrażenie o tym, co dokładnie robi każda operacja. W tym miejscu pojawia się technika Object Relational Mapping (ORM). Pozwala to na wykonywanie zapytań i manipulowanie danymi przy użyciu wybranego przez Ciebie języka programowania obiektowego. ORM zmniejszają złożoność kodu i czynią go bardziej zrozumiałym, co z kolei ułatwia aktualizację, utrzymanie i ponowne wykorzystanie kodu.
W tym artykule przyjrzymy się Django ORM, który jest ORM opartym na Pythonie i dlatego jest jedną z najpopularniejszych obecnie używanych technologii.
Co to jest Django?
Zanim przejdziemy do przyjrzenia się ORM Django, najpierw zobaczmy, czym właściwie jest ta technologia Pythona o nazwie Django.
Django to darmowa platforma internetowa o otwartym kodzie źródłowym zaprojektowana w Pythonie, dlatego ma bardzo przejrzysty i schludny projekt, a także jest prosty, elastyczny, niezawodny i skalowalny. Ułatwia to programistom stron internetowych, ponieważ dostarcza użytkownikom gotowe komponenty, co z kolei uniemożliwia im pisanie wszystkiego od zera, a w rezultacie przyspiesza ich pracę i zmniejsza obciążenie strony internetowej. Oprócz tego jest wyjątkowo bezpieczny i pomaga użytkownikom uniknąć problemów związanych z bezpieczeństwem, takich jak ataki związane z przywracaniem interfejsu użytkownika, wstrzykiwanie SQL itp. Ma również niezwykle dużą społeczność, która jest zawsze dostępna za pośrednictwem forów i zawsze gotowa do zaoferowania swojej pomocy innym.
Przyjrzyjmy się teraz wreszcie Django ORM i niektórym z jego głównych funkcji.
Dostęp do ORM Django
Po zainstalowaniu Django i skonfigurowaniu jego projektu zazwyczaj otrzymujemy następujące pliki początkowe:
mysite tutaj odnosi się do nazwy projektu, który utworzyłeś. Wszystkie te pliki mają swoje własne zastosowania i ważne jest, aby wiedzieć, jaką rolę odgrywa każdy plik. Skupiamy się tutaj na zarządzaniu.plik py, który będzie dla nas kontrolował wiele różnych rzeczy, takich jak konfiguracja serwera, wykonywanie migracji, komunikowanie się z bazą danych, a także wejście w tryb ORM.
Aby otworzyć Django ORM, otwórz wiersz poleceń z głównego katalogu swojego projektu Django i uruchom następujące polecenie:
$ zarządzanie pythonem.py shellOtworzy to dla nas interaktywną powłokę, która pozwoli nam rozpocząć interakcję z bazą danych za pomocą ORM.
Manipulowanie bazą danych za pomocą zapytań w Django ORM
Ponieważ ORM pozwala nam na interakcję z bazą danych, możemy teraz pisać różne zapytania, aby pobierać i manipulować danymi z bazy danych. Zanim jednak zaczniemy pracę nad bazą danych w powłoce, najpierw musimy zaimportować wszystkie powiązane z nią modele. Można to zrobić po prostu uruchamiając polecenie w interaktywnej powłoce, jak pokazano poniżej:
$ z nazwy aplikacji.modele importują nazwa modeluTutaj appName odnosi się do nazwy Twojej aplikacji, którą utworzyłeś, a zatem gdzie aktualnie przechowywane są Twoje modele. ModelName odnosi się do nazwy modelu, który chcesz zaimportować i używać. Tutaj możesz zaimportować wiele modeli, jak widać na poniższym przykładzie:
Teraz możesz uzyskać dostęp do obiektu modelu i odczytać z niego dane. Na przykład, jeśli chcemy listę wszystkich postów, możemy je po prostu pobrać, uruchamiając następujące polecenie w naszym terminalu:
$ Poczta.przedmioty.wszystko()Oto wynik powyższego polecenia:
Możemy zrobić kilka innych rzeczy w ORM, takich jak tworzenie nowych danych bazy danych, aktualizowanie danych i wszystkie inne polecenia bazy danych, które możesz.
Modelowanie baz danych
Jedną z najlepszych rzeczy, jakie Django ORM zapewnia swoim użytkownikom, jest możliwość automatycznego łączenia i ustanawiania relacji między atrybutami obiektu Twojego modelu a odpowiednimi polami tabeli. W bazach danych istnieją głównie trzy rodzaje relacji. są to relacje jeden-do-jednego, relacje jeden-do-wielu lub wiele-do-jednego oraz relacje wiele-do-wielu.
Relacja jeden-do-jednego to, jak sama nazwa wskazuje, gdzie rekord jednej tabeli odpowiada pojedynczemu rekordowi innej tabeli. W Django ORM możemy to łatwo ustalić w następujący sposób:
klasa Rodzic(modele.Model):użytkownik = modele.Jedno na jedno pole (
Użytkownik,
on_delete=modele.KASKADA,
primary_key=prawda,
)
imię_ojca = modele.Pole znaku(max_length=100)
imię_matki = modelki.Pole znaku(max_length=100)
Tutaj każdy użytkownik może mieć tylko jednego biologicznego rodzica, a zatem jest to relacja jeden-do-jednego. Teraz, jeśli usuniemy dowolnego użytkownika uzyskującego dostęp do tego modelu, usunie to również model 2znaleźć użytkownik, ponieważ są od siebie zależni.
Jeden-do-wielu lub wiele-do-jednego odnosi się do relacji, w której rekord nadrzędny może mieć kilka rekordów podrzędnych, jednak może również mieć tylko jedno dziecko lub nie mieć go wcale. W Django ORM możemy łatwo nawiązać tę relację za pomocą Klucz obcy pole:
klasa Klient (modele).Model):nazwa = modele.Pole znaku(max_length=255)
Klasa pojazdu (modele).Model):
klient = modele.Klucz obcy(
Klient,
on_delete=modele.KASKADA
)
Jak widać w powyższym kodzie, klient może mieć wiele pojazdów.
Wreszcie relacje wiele-do-wielu definiują relację, w której wiele tabel może być ze sobą powiązanych. Możemy to stworzyć za pomocą Wiele do wielu pole. W poniższym przykładzie stworzyliśmy dwa modele, jeden dla użytkownika, a drugi dla jego postów. Może być wielu użytkowników, ponieważ każdy użytkownik może mieć wiele postów.
klasa Użytkownik(modele.Model):słupek = modelki.ManyToManyField(Post, blank=True)
przyjaciele = modele.ManyToManyField (ustawienia.AUTH_USER_MODEL, puste = prawda)
klasa Post (modele.Model):
słupek = modelki.Pole tekstowe()
polubienia = modele.ManyToManyField (ustawienia.AUTH_USER_MODEL, blank=True, related_name='user_likes')
Wniosek
Django ORM to niezwykle potężne narzędzie, które znacznie ułatwiło pracę programistom internetowym. Posiada wiele funkcji, takich jak manipulacja modelami baz danych, nawiązywanie relacji między modelami i wiele więcej. Krótko mówiąc, Django ORM jest jedną z najlepszych rzeczy dostarczanych z Django i jest bardzo skuteczny w wykonywanej pracy.