Django to platforma do tworzenia aplikacji internetowych oparta na języku Python, która umożliwia szybkie tworzenie bezpiecznych i łatwych w utrzymaniu witryn internetowych.
Django pomaga twórcom stron internetowych pisać czysty, wydajny i solidny kod. Oprócz tego, że jest jednym z najpopularniejszych frameworków internetowych, jest to jedna z najczęściej używanych technologii tworzenia stron internetowych.
Wspomniany framework został wykorzystany przez popularne platformy, takie jak Instagram, YouTube, Google itp. Django pozwala programistom szybciej tworzyć aplikacje, pisząc mniej kodu.
Ponadto jest darmowym oprogramowaniem typu open source, wspieranym przez aktywną społeczność programistów, ma doskonałą dokumentację i zapewnia programistom wiele cennych funkcji.
Jak powstało Django?
Django zostało po raz pierwszy opracowane w 2003 roku przez Adriana Holovaty’ego i Simona Willisona i zademonstrowało jego zdolność do obsługi witryn o dużym natężeniu ruchu. Na przestrzeni lat ukazały się różne wersje tego frameworka, najnowsza wersja to wersja 4.0, która ukazała się w 2022 roku.
Dzisiaj, Django to wspólny projekt open source z szeroką gamą programistów na całym świecie aktywnie zaangażowanych w jego rozwój i naprawianie błędów. Ogólnie, Django nastąpił z następujących powodów:
-
Czysty projekt: Django kod jest bardzo czytelny, ponieważ Django zachęca programistów do przestrzegania standardowych zasad tworzenia aplikacji.
-
Krótkie kodowanie: mniej kodowania pozwala programistom pracującym w oparciu o metodologię szybkiego rozwoju wyprodukować prototyp w możliwie najkrótszym czasie.
-
Brak powtórzeń: Django pozwala programistom na pisanie każdego modułu programu zamiast powtarzania go w różnych częściach aplikacji, tylko w jednym kawałku i używanie go wielokrotnie (możliwość ponownego użycia).
-
Szybki rozwój: Django pozwala programistom tworzyć aplikacje w możliwie najkrótszym czasie.
-
Względna niezależność różnych komponentów: Django został opracowany w taki sposób, że każdy z elementów i cech tego frameworka jest niemal niezależny od siebie. Oczywiście w niektórych przypadkach istnieją zależności.
Ogólna znajomość architektury Django
Django to platforma do tworzenia aplikacji internetowych przy użyciu języka Python i obsługująca architektury MVC i MVT. Kiedy mówimy o aplikacjach z interfejsem użytkownika, mamy na myśli specyficzną architekturę zwaną architekturą Model-View-Controller (MVC). Jak wynika z nazwy wspomnianej architektury, architektura MVC składa się z trzech komponentów: Modelu, Widoku i Kontrolera. Architektura MVT różni się nieco od architektury MVC.
Główną różnicą pomiędzy powyższymi dwiema architekturami jest to, że biblioteka Django zarządza komponentem kontrolera w modelu MVT. Komponent kontrolera to kod oprogramowania sterujący interakcją pomiędzy modelem i komponentami wyświetlacza.
Biorąc pod uwagę, że w architekturze MVT biblioteka Django zarządza komponentem kontrolera, monitoruje także działanie komponentu Template. Komponent Szablon to plik HTML połączony z rozszerzeniem Django Język szablonów.
Rysunek 1 pokazuje, jak różne komponenty architektury MVT współdziałają ze sobą, aby obsłużyć żądanie użytkownika. W oparciu o wspomnianą architekturę programista definiuje moduł Model, następnie za pomocą Widoku i Szablonu określony Model jest mapowany na adres internetowy. Wreszcie, Django platforma zapewnia użytkownikowi żądaną treść lub usługę.
rysunek 1
Dlaczego programiści używają Django?
Django udostępnia programistom następujące funkcje:
-
Rozbudowana funkcjonalność: Django oferuje różne moduły i funkcje, dzięki którym programiści mogą wykonywać najprostsze czynności. Django zapewnia zintegrowaną funkcjonalność i obsługuje standardowe zasady kodowania. Ponadto posiada aktualną i kompletną dokumentację.
-
Jest elastyczny: Django można wykorzystać do zbudowania dowolnej witryny internetowej, od systemów zarządzania treścią i witryn wiki po sieci społecznościowe i serwisy informacyjne. Powyższe podejście może współpracować z dowolnym frameworkiem po stronie użytkownika i udostępniać treści w niemal dowolnym formacie (w tym HTML, kanały RSS, JSON, XML itp.).
-
To jest bezpieczne: Django zapobiega popełnianiu przez programistów typowych błędów związanych z bezpieczeństwem, które mogłyby narazić witrynę na poważne ryzyko. Z tego powodu w porównaniu do frameworków takich jak język programowania PHP Laravel, jego kody są lepszej jakości z punktu widzenia bezpieczeństwa. Na przykład, Django zapewnia bezpieczny sposób zarządzania kontami użytkowników i hasłami, pozwala uniknąć typowych błędów, takich jak umieszczanie informacji o sesji w wrażliwych plikach cookie lub bezpośrednie przechowywanie haseł, a także wykorzystuje mechanizm mieszający do ochrony haseł. Pliki cookie Django zawierają tylko jeden klucz; rzeczywiste dane są przechowywane w bazie danych.
Skrót hasła to wartość o stałej długości, która szyfruje hasło za pomocą funkcji skrótu. Po zaszyfrowaniu hasła funkcja skrótu porównuje wynik skrótu z wartością pierwotną w celu potwierdzenia poprawności hasła. Ze względu na jednokierunkowy charakter funkcji, jeśli przechowywana wartość skrótu zostanie naruszona, Django szybko to zauważy, uniemożliwiając hakerom łatwe uzyskanie dostępu do haseł.
Django ogromnymi korzyściami jest ochrona aplikacji internetowych przed lukami w zabezpieczeniach, takimi jak wstrzykiwanie kodu SQL, wykonywanie skryptów między witrynami, fałszowanie żądań między witrynami i przynęta na kliknięcia.
-
Jest skalowalny: Django wykorzystuje wyjątkową architekturę zorientowaną na komponenty, zwaną „de-partycjonowaniem”, dzięki czemu każda część architektury jest niezależna od innych i może być wymieniana lub zmieniana w razie potrzeby. Ten wyraźny mechanizm separacji oznacza, że gdy wzrasta ruch, sprzęt, taki jak serwery pamięci podręcznej, serwery baz danych lub serwery aplikacji, można najłatwiej dodać do infrastruktury. Właśnie dlatego witryny o dużym natężeniu ruchu, takie jak Instagram, korzystają z tego frameworka.
-
Utrzymywane: Django kod wykorzystuje zasady i wzorce projektowe, które zachęcają programistów do pisania kodu łatwego w utrzymaniu i wielokrotnego użytku. Ramy te najlepiej wspierają zasadę „Nie powtarzaj się”, dzięki czemu duplikaty kodów nie są rejestrowane, a liczba przepisów jest ograniczona. Ponadto obsługuje grupowanie powiązanych funkcji w celu ponownego użycia i grupowanie powiązanego kodu w moduły dostosowane do architektury MVC.
-
Jest przenośny: Django jest napisane Pyton, które mogą działać na różnych platformach. Mówiąc dokładniej, nie jesteś przywiązany do żadnej konkretnej platformy serwerowej i możesz uruchamiać swoje aplikacje w systemach Linux, Windows i macOS. Dodatkowo, Django jest obsługiwana przez większość dostawców usług hostingowych.
Jak wygląda kod Django w programowaniu?
Dane mogą być odczytywane lub zapisywane w bazie danych w zależności od potrzeb. W tradycyjnej witrynie internetowej opartej na danych aplikacja internetowa czeka na żądania HTTP z przeglądarki internetowej użytkownika. Aplikacja sprawdza wymagania po otrzymaniu żądania na podstawie adresu URL i danych informacyjnych POST lub GE.
Program następnie wysyła odpowiedź do przeglądarki internetowej, często dynamicznie tworząc i wysyłając stronę HTML, aby przeglądarka mogła poprawnie wyświetlić otrzymane dane w formacie HTML. Zazwyczaj Django programy internetowe umieszczają kody potrzebne do wykonania wspomnianych kroków w oddzielnych plikach (rysunek 2). Elementy pokazane na rysunku 2 są następujące:
Rysunek 2
-
Adresy URL: chociaż możliwa jest obsługa żądań z dowolnego adresu URL za pomocą jednej funkcji, napisanie osobnej funkcji wyświetlania do zarządzania każdym zasobem upraszcza konserwację kodu. W tym przypadku narzędzie mapujące adresy URL służy do kierowania żądań HTTP do odpowiedniego komponentu wyświetlania na podstawie żądanego adresu URL. Narzędzie do mapowania adresów URL może dopasowywać określone wzorce ciągów lub cyfr występujących w adresie URL i przekazywać je jako dane do funkcji wyświetlającej.
-
Widok: funkcja obsługi żądań odbiera żądania HTTP i zwraca odpowiedzi HTTP. Widoki uzyskują dostęp do danych potrzebnych do odpowiadania na żądania za pośrednictwem modeli i delegują proces formatowania odpowiedzi do modeli.
-
Modele to obiekty Pythona, które definiują strukturę danych aplikacji i zapewniają mechanizmy zarządzania (dodawania, modyfikowania, usuwania) i odpytywania rekordów w bazie danych.
-
Szablony: Szablon to plik tekstowy, który definiuje strukturę lub układ pliku (np. strony HTML) ze zmiennymi używanymi do wyświetlania rzeczywistej zawartości. Szablon może zostać użyty do zdefiniowania struktury dowolnego pliku i nie musi być to plik HTML. Widok może dynamicznie tworzyć stronę HTML przy użyciu szablonu HTML i dostarczać wymagane dane dla modelu.
Jak wspomnieliśmy na początku artykułu, Django obsługuje MVT i MVC, a powyższy wzorzec jest oparty na architekturze MVT.
Wyślij żądanie do właściwej funkcji wyświetlania (urls.py)
Zwykle narzędzie do mapowania adresów URL jest przechowywane w pliku o nazwie urls.py. W poniższym fragmencie kodu moduł mapujący (wzorce adresów URL) definiuje listę mapowań pomiędzy ścieżkami (określonymi wzorcami adresów URL) i odpowiednimi funkcjami wyświetlania.
Jeśli odebrane zostanie żądanie HTTP z adresem URL pasującym do określonego wzorca, wywoływana jest odpowiednia funkcja wyświetlania i żądanie jest wysyłane. Ilustruje to poniższy fragment kodu.
Wzorce adresów URL = [
path(‘admin/’, admin.site.urls),
path(‘book/<int:id>/’, views.book_detail, name=’book_detail’),
path(‘catalog/’, include(‘catalog.urls’)),
re_path(r’^([0-9]+)/$’, najlepsze wyświetlenia),
]
Obsługa żądań i zarządzanie nimi (views.py)
Komponent View jest sercem aplikacji internetowych. Otrzymuje żądania HTTP od klientów internetowych i zwraca odpowiedzi HTTP. W tym celu komponenty wyświetlacza mają dostęp do baz danych, wzorców przetwarzania itp.
Poniższy fragment kodu przedstawia funkcję wyświetlania indeksu, którą można wywołać za pomocą komponentu mapującego adresy URL z poprzedniego fragmentu kodu. Poniższy fragment kodu przyjmuje obiekt HttpRequest jako parametr (żądanie) i zwraca obiekt HttpResponse. W tym przypadku nie robimy nic z żądaniem i otrzymujemy odpowiedź w postaci ciągu znaków.
# nazwa pliku: widoki.py (funkcje widoku Django)
z Django.HTTP importuj HttpResponse
def indeks (żądanie):
# Uzyskaj HttpRequest – parametr żądania
# wykonaj operacje wykorzystując informacje z żądania.
# Zwróć HttpResponse
return HttpResponse(‘Witam z Django!’)
Widoki są przechowywane w pliku o nazwie Views.py.
Definiowanie modeli danych (models.py)
Django oparte na aplikacjach internetowych zarządzanie danymi i interakcja z nimi za pośrednictwem obiektów Pythona zwanych „modelami”. Modele definiują strukturę przechowywanych danych, taką jak typy pól i maksymalne rozmiary, wartości domyślne, opcje listy wyboru, tekst pomocy dla dokumentów, tekst etykiet dla formularzy itp. Definicja modelu jest niezależna od bazowej bazy danych.
Poniższy fragment kodu to prosty model Django dla obiektu Team. Klasa Team wywodzi się z modeli. Klasa modelu. Poniższy fragment kodu definiuje nazwę zespołu i poziom zespołu jako pola znakowe. Określona jest także maksymalna liczba znaków przechowywanych dla każdego rekordu. poziom_zespołu może być jedną z kilku wartości; Dlatego definiujemy je jako pole opcjonalne i zapewniamy mapowanie pomiędzy wyświetlanymi opcjami a przechowywanymi danymi wraz z wartością domyślną.
# nazwa pliku: modele.py
z modeli importu Django.DB
klasa Zespół(modele. Model):
nazwa_zespołu = modele.CharField(max_length=40)
POZIOMY_ZESPOŁU = (
(„U09”, „Poniżej 09 lat”),
(„U10”, „Poniżej 10 lat”),
(„U11”, „Poniżej 11 lat”),
… #wymień inne poziomy zespołu
)
poziom_zespołu = modele.CharField(max_length=3, wybory=TEAM_LEVELS, domyślnie=’U11′)
Uruchamianie zapytań na danych (views.py)
Django model zapewnia programistom funkcjonalność programowanie interfejs do wykonywania prostych zapytań do bazy danych. Powyższy interfejs może współpracować z kilkoma polami jednocześnie, stosując różne kryteria i obsługiwać złożone wyrażenia. Poniższy fragment kodu przedstawia funkcję wyświetlania (kontroler zasobów), która wyświetla wszystkie drużyny U09.
Wiersz list_teams = Team.objects.filter(team_level__exact=” U09″) pokazuje, w jaki sposób możemy użyć interfejsu API zapytań modelowych do odfiltrowania wszystkich rekordów, w których pole team_level ma dokładnie wartość „U09” (zwróć uwagę, jak to kryterium działa jak filtr dla argumentu).
## nazwa pliku: widoki.py
z Django. skróty importują renderowanie
z zespołu importującego .models
def indeks (żądanie):
list_teams = Team.objects.filter(team_level__exact=”U09”)
kontekst = {‘youngest_teams’: list_teams}
return render(żądanie, ‘/best/index.html’, kontekst)
Powyższy kod wykorzystuje funkcję render do utworzenia odpowiedzi HttpResponse wysłanej do przeglądarki i działającej jako skrót. Powyższy fragment kodu tworzy plik HTML poprzez połączenie określonego szablonu HTML i niektórych danych dodanych do formatu (podanych w zmiennej zwanej kontekstem).
Przetwarzanie danych (szablony HTML)
Szablony umożliwiają określenie struktury dokumentu wyjściowego, w którym mają zostać umieszczone dane. Szablony są najczęściej używane do tworzenia kodu HTML, ale można za ich pomocą tworzyć inne typy dokumentów.
Django obsługuje natywny system szablonów i popularną bibliotekę Pythona o nazwie Jinja2. Poniższy fragment kodu pokazuje, co funkcja renderuje wywołuje szablon HTML. Szablon został napisany przy założeniu, że po przetworzeniu będzie miał dostęp do zmiennej listowej o nazwie Najmłodsze_zespoły.
W treści HTML mamy polecenie, które sprawdza, czy zmienna Youngest_teams istnieje i w pętli odczytuje jej zawartość.
Szablon wyświetla wartość nazwa_zespołu poprzez element
## nazwa pliku: best/templates/best/index.html
{% jeśli najmłodsze zespoły %}
- {{nazwa zespołu.zespołu }
{% dla zespołu w najmłodszych_zespołach %}
{% koniec dla %}
{% w przeciwnym razie %}
Brak dostępnych zespołów.
{% endif %}
Pobierz motywy WordPress za darmoPobierz motywy WordPressPobieranie premium motywów WordPressPobieranie premium motywów WordPresskurs udemy do pobrania za darmopobierz oprogramowanie lawyPobierz motywy WordPress za darmoudemy do pobrania za darmo