Samouczek Django: Funkcje, Architechura i historia

โšก Inteligentne podsumowanie

Django to darmowy, otwarty kod ลบrรณdล‚owy Python platforma internetowa oparta na wzorcu model-widok-szablon, umoลผliwiajฤ…ca szybkie tworzenie bezpiecznych, skalowalnych witryn internetowych opartych na bazie danych dziฤ™ki wielokrotnego uลผytku komponentom, automatycznemu interfejsowi administracyjnemu i projektowi uwzglฤ™dniajฤ…cemu doล‚ฤ…czone baterie.

  • ๐Ÿ”˜ Struktura: Django to system wysokiego poziomu Python framework umoลผliwiajฤ…cy szybkie tworzenie zล‚oลผonych aplikacji internetowych opartych na bazach danych.
  • ๏ธ Archistruktura: Wzorzec model-widok-szablon (MVT) umoลผliwia Django zarzฤ…dzanie kontrolerem oraz oddzielenie danych, logiki i prezentacji.
  • โœ… Zawiera baterie: Wbudowane funkcje administracyjne, uwierzytelniania, formularze i internacjonalizacja eliminujฤ… wiฤ™kszoล›ฤ‡ powtarzalnych czynnoล›ci konfiguracyjnych.
  • ๐Ÿ› ๏ธ. Bezpieczeล„stwo: Domyล›lne zabezpieczenia blokujฤ… ataki CSRF, cross-site scripting, SQL injection i clickjacking.
  • ๐Ÿงช Skala: InstagramPinterest, Mozilla i Disqus wykorzystujฤ… Django do obsล‚ugi bardzo duลผego ruchu.
  • ๐Ÿค– AI: Django udostฤ™pnia modele uczenia maszynowego w postaci interfejsรณw API, a asystenci, tacy jak GitHub Copilot, przyspieszajฤ… kodowanie zaplecza.

Samouczek Django dla poczฤ…tkujฤ…cych

Django obsล‚uguje niektรณre z najwiฤ™kszych witryn w sieci, a jednoczeล›nieping Szybki i zorganizowany codzienny rozwรณj. Zanim przyjrzymy siฤ™ jego funkcjom, architekturze i historii, poniลผsze sekcje rozpoczynajฤ… siฤ™ od podstaw frameworkรณw internetowych i tego, co wyrรณลผnia Django.

Podsumowanie samouczka Django

Ten samouczek Django obejmuje wszystkie podstawowe zagadnienia od podstaw. Poznasz w nim takie pojฤ™cia, jak: czym jest Django, jego historia, funkcje, charakterystyka frameworka Django, komponenty Django, jego zalety i wady i wiele wiฤ™cej.

Zanim nauczysz siฤ™ jฤ™zyka Django, musimy zrozumieฤ‡:

Co to jest framework sieciowy?

Framework internetowy to biblioteka kodu, ktรณra pomaga w tworzeniu elastycznych, skalowalnych i ล‚atwych w utrzymaniu dynamicznych witryn internetowych, aplikacji internetowych lub usล‚ug internetowych. Rรณลผne frameworki internetowe obejmujฤ… Zend for PHP, Ruby on Rails dla Ruby i innych.

Co to jest Django?

Django to framework do tworzenia stron internetowych dla Python Oferuje standardowe metody szybkiego i efektywnego tworzenia stron internetowych. Gล‚รณwnym celem tego zaawansowanego frameworka internetowego jest tworzenie zล‚oลผonych witryn internetowych opartych na bazie danych. Pomaga on w budowaniu i utrzymywaniu wysokiej jakoล›ci aplikacji internetowych. Umoลผliwia on pล‚ynny i szybki proces rozwoju, oszczฤ™dzajฤ…c czas.

Dlaczego Django? Kluczowe zalety Django

Oto gล‚รณwne zalety Django:

  • Django jest ล‚atwy w konfiguracji i uruchomieniu. Oferuje wiele opcji na poczฤ…tek.
  • Zapewnia gotowy do uลผycia interfejs uลผytkownika do czynnoล›ci administracyjnych.
  • Umoลผliwia tworzenie wielojฤ™zycznych stron internetowych dziฤ™ki wbudowanemu systemowi internacjonalizacji.
  • Pomaga szybko sprostaฤ‡ ogromnemu zapotrzebowaniu na ruch uliczny.
  • Django jest wykorzystywany do budowy wszelkiego rodzaju systemรณw zarzฤ…dzania treล›ciฤ…, sieci spoล‚ecznoล›ciowych, a takลผe platform do obliczeล„ naukowych.
  • Django umoลผliwia kompleksowe testowanie aplikacji.
  • Pomaga dokumentowaฤ‡ API za pomocฤ… danych wyjล›ciowych w formacie HTML.
  • Struktura REST zapewnia bogate wsparcie dla kilku protokoล‚รณw uwierzytelniania.
  • Oferuje uprawnienia i zasady ograniczania przepustowoล›ci.
  • Jest szeroko stosowany w przypadku ลผฤ…daล„ API ograniczajฤ…cych szybkoล›ฤ‡ transmisji od jednego uลผytkownika.

Historia Django

Rok Kamieล„ milowy
2003 Projekt zostaล‚ zapoczฤ…tkowany przez Adriana Holovatyโ€™ego i Simona Willisona jako wewnฤ™trzny projekt gazety Lawrence Journal-World.
Lipiec 2005 Utwรณr wydano w lipcu 2005 r. pod tytuล‚em โ€žDjangoโ€, nazwanym na czeล›ฤ‡ gitarzysty jazzowego Django Reinhardta.
Czerwiec 2008 Oล›wiadczono, ลผe oprogramowanie Django Foundation (DSF) bฤ™dzie utrzymywaฤ‡ Django.
29 July 2009 Wersja Django 1.1 zostaล‚a wydana z nowymi funkcjami, takimi jak agregaty i testy oparte na transakcjach.
17 maja 2010 roku Zostaล‚a wydana wersja Django 1.2. Aktualizacja oferowaล‚a funkcje takie jak wiele baz danych i zaplecze poczty e-mail, a takลผe usprawnienia dotyczฤ…ce sesji i plikรณw cookie.
Marzec 23 2011 Wersja 1.3 wprowadziล‚a nowe funkcje, takie jak widoki oparte na klasach i pliki statyczne.
Marzec 23 2012 Wersja 1.4 zostaล‚a wydana z nowymi funkcjami, takimi jak strefy czasowe i moลผliwoล›ฤ‡ testowania w przeglฤ…darce.
Luty 26 2013 Wersja 1.5 zawieraล‚a: Python 3 funkcje wsparcia i konfigurowalnego modelu uลผytkownika.
Listopada 6 2013 Wersja 1.6 zostaล‚a wzbogacona o funkcje zarzฤ…dzania transakcjami w bazie danych i pulowania poล‚ฤ…czeล„.
2 wrzeล›nia 2014 Wersja 1.7 wprowadziล‚a nowe funkcje, takie jak ล‚adowanie aplikacji, migracje i konfiguracja.
Kwiecieล„ 1 2015 Zapewniono natywne wsparcie dla wielu silnikรณw szablonรณw.
1 grudzieล„ 2015 W wersji 1.9 wprowadzono funkcjฤ™ automatycznej weryfikacji hasล‚a.
Sierpnia 1 2016 W wersji 1.10 wyszukiwanie peล‚notekstowe PostgreSQL zostaล‚a uruchomiona.
Kwiecieล„ 4 2017 Wersja 1.11 staล‚a siฤ™ ostatniฤ… wersjฤ… obsล‚ugujฤ…cฤ… Python 2.7.
2 grudzieล„ 2017 Wersja 2.0 staล‚a siฤ™ pierwszฤ… Python Wersja dostฤ™pna tylko w wydaniu 3.
Sierpnia 1 2018 Wersja 2.1 wprowadziล‚a funkcje obsล‚ugi uprawnieล„ โ€žwidokuโ€ modelu.
2021 Usuniฤ™to obsล‚ugฤ™ Django 3.0 i dodano obsล‚ugฤ™ Django 3.2.

W tym samouczku dla poczฤ…tkujฤ…cych dotyczฤ…cym Django zapoznamy siฤ™ z funkcjami programu.

Cechy Django

Poniลผej znajdujฤ… siฤ™ funkcje Django:

  • Pomaga zdefiniowaฤ‡ wzorce dla URLw swojej aplikacji.
  • Proste, ale skuteczne URL pomimo napiฤ™tego harmonogramu
  • Wbudowany system uwierzytelniania.
  • Baza danych jฤ™zyka programowania obiektowego, oferujฤ…ca najlepsze w swojej klasie przechowywanie i wyszukiwanie danych.
  • Funkcja automatycznego interfejsu administratora umoลผliwia dodawanie, edycjฤ™ i usuwanie elementรณw. Moลผesz dostosowaฤ‡ panel administracyjny do swoich potrzeb.
  • Struktura pamiฤ™ci podrฤ™cznej obejmuje wiele mechanizmรณw pamiฤ™ci podrฤ™cznej.

W tym samouczku dotyczฤ…cym frameworka Django poznamy cechy charakterystyczne frameworka Django.

Charakterystyka Django

Oto gล‚รณwne cechy Django:

  • Luลบno powiฤ…zane โ€“ Django pomaga uniezaleลผniฤ‡ kaลผdy element stosu od pozostaล‚ych.
  • Less kod โ€“ Zapewnia efektywny rozwรณj.
  • Nie powtรณrzono โ€“ Wszystko powinno byฤ‡ rozwijane w dokล‚adnie jednym miejscu, a nie powtarzane od nowa.
  • Szybki rozwรณj โ€“ Django oferuje szybkie i niezawodne tworzenie aplikacji.
  • Spรณjny projekt โ€“ Django charakteryzuje siฤ™ przejrzystym designem i uล‚atwia stosowanie najlepszych praktyk tworzenia stron internetowych.

W dalszej czฤ™ล›ci tego samouczka dla poczฤ…tkujฤ…cych uลผytkownikรณw Django poznamy architekturฤ™ tego pakietu.

Django Archiarchitektura: MVC i MVT

Poniลผej znajduje siฤ™ szczegรณล‚owa architektura Django:

Django Architektura

Django Architektura

Wzรณr MVC

Mรณwiฤ…c o aplikacjach, ktรณre zapewniajฤ… interfejs uลผytkownika (internetowy lub stacjonarny), zazwyczaj mรณwimy o architekturze MVC. Wzorzec MVC opiera siฤ™ na modelu, widoku i kontrolerze.

Model definiuje strukturฤ™ danych i zajmuje siฤ™ wykonywaniem zapytaล„ do bazy danych.

Zobacz definiuje, jakie dane majฤ… byฤ‡ prezentowane i zwraca odpowiedลบ HTTP.

kontroler jest czฤ™ล›ciฤ… aplikacji, ktรณra obsล‚uguje interakcjฤ™ uลผytkownika.

Wzorzec Django MVC-MVT

Model-Widok-Szablon (MVT) to inna koncepcja niลผ MVC. Gล‚รณwnฤ… rรณลผnicฤ… miฤ™dzy tymi dwoma wzorcami architektonicznymi jest to, ลผe sam Django zarzฤ…dza czฤ™ล›ciฤ… kontrolera (kodem oprogramowania, ktรณry kontroluje interakcje miฤ™dzy modelem a widokiem). Szablon to plik HTML poล‚ฤ…czony z plikiem Django Template Language, zwanym rรณwnieลผ DTL.

Poniลผszy diagram pokazuje, w jaki sposรณb wszystkie komponenty wzorca MVT oddziaล‚ujฤ… na siebie, aby obsล‚uลผyฤ‡ konkretne ลผฤ…danie uลผytkownika.

Django Archiarchitektura: MVC i MVT

MVT Architektura

Jak widaฤ‡ na powyลผszym diagramie, uลผytkownik ลผฤ…da zasobu od Django. Django dziaล‚a jako kontroler i sprawdza dostฤ™pnoล›ฤ‡ zasobu w URL.

Jeล›li URL W przypadku map wywoล‚ywany jest widok, ktรณry wchodzi w interakcjฤ™ z modelem i szablonem. Nastฤ™pnie Django odpowiada uลผytkownikowi i wysyล‚a szablon jako odpowiedลบ.

W tej serii samouczkรณw Django dla poczฤ…tkujฤ…cych poznamy komponenty Django.

Komponenty Django

Forma

Django posiada potฤ™ลผnฤ… bibliotekฤ™ formularzy, ktรณra obsล‚uguje renderowanie formularzy jako HTML. Biblioteka pomaga w sprawdzaniu poprawnoล›ci przesล‚anych danych i konwertowaniu ich do formatu Python rodzaje.

Uwierzytelnianie

Zarzฤ…dza kontami uลผytkownikรณw, grupami, sesjami uลผytkownikรณw opartymi na plikach cookie i nie tylko.

Admin

Odczytuje metadane z Twoich modeli, aby zapewniฤ‡ solidny interfejs, ktรณrego moลผna uลผywaฤ‡ do zarzฤ…dzania treล›ciฤ… w Twojej witrynie.

Umiฤ™dzynarodowienie

Django umoลผliwia tล‚umaczenie tekstu na rรณลผne jฤ™zyki oraz formatowanie dat, godzin, liczb i stref czasowych zaleลผne od ustawieล„ regionalnych.

Ochrona

Django zapewnia zabezpieczenia przed nastฤ™pujฤ…cymi atakami:

  • Faล‚szerstwo ลผฤ…daล„ miฤ™dzy lokacjami (CSRF)
  • Cross-site scripting
  • SQL injection
  • Clickjacking
  • Zdalne wykonanie kodu

Znane firmy korzystajฤ…ce z Django

Oto firmy korzystajฤ…ce z Django:

  • Bitbucket
  • Disqus
  • NASA
  • PBS (nadawanie publiczne)
  • Pinterest
  • Instagram
  • Mozilla
  • The Washington Post
  • The New York Times
  • Los Angeles Times
  • The Guardian
  • National Geographic
  • Discovery Channel

Wady korzystania z Django

Oto kilka wad korzystania z Django:

  • Pojedynczy proces nie jest w stanie obsล‚uลผyฤ‡ wielu ลผฤ…daล„ jednoczeล›nie.
  • Django jest bardzo monolitycznym narzฤ™dziem.
  • Komponenty sฤ… wdraลผane jednoczeล›nie, co moลผe powodowaฤ‡ zamieszanie.
  • Do pracy z Django konieczna jest znajomoล›ฤ‡ caล‚ego systemu.
  • Zapewnia ล›cisล‚e powiฤ…zanie komponentรณw aplikacji sieciowej.
  • Do drobnych zadaล„ potrzebne jest dล‚ugie programowanie.

FAQ

Django to przede wszystkim framework back-endowy, choฤ‡ czฤ™sto okreล›la siฤ™ go mianem full-stack, poniewaลผ jego warstwa szablonรณw renderuje HTML. Zarzฤ…dza logikฤ… po stronie serwera, bazami danych, routingiem i bezpieczeล„stwem, podczas gdy szablony odpowiadajฤ… za prezentacjฤ™ w przeglฤ…darce.

Django to kompleksowy framework z wbudowanym ORM, panelem administracyjnym i uwierzytelnianiem. Flask to lekki mikroframework, ktรณry charakteryzuje siฤ™ minimalizmem i opiera siฤ™ na rozszerzeniach dla tych samych funkcji, dajฤ…c programistom wiฤ™kszฤ… kontrolฤ™ rฤ™cznฤ….

Django ORM, czyli maper obiektowo-relacyjny, umoลผliwia definiowanie tabel bazy danych jako Python klasy i zapytaj je za pomocฤ… Python kod zamiast surowego SQL. Obsล‚uguje bazy danych takie jak PostgreSQL, MySQL, SQLite, Oracle.

Uruchom polecenie python -m django โ€“version w wierszu poleceล„ lub otwรณrz Python shell i uruchom import django, a nastฤ™pnie print(django.get_version()). Oba polecenia wyล›wietlajฤ… numer zainstalowanej wersji Django.

Oprogramowanie poล›redniczฤ…ce to seria hakรณw, ktรณre przetwarzajฤ… kaลผde ลผฤ…danie i odpowiedลบ globalnie. Django uลผywa oprogramowania poล›redniczฤ…cego do obsล‚ugi sesji, uwierzytelniania, ochrony CSRF i nagล‚รณwkรณw bezpieczeล„stwa, uruchamianych kolejno przed i po wykonaniu widoku.

Znajomoล›ฤ‡ praktyczna Python Wymagana jest rรณwnieลผ znajomoล›ฤ‡ podstawowych pojฤ™ฤ‡ internetowych, takich jak HTTP, HTML i bazy danych. Zrozumienie programowania obiektowego znacznie uล‚atwia naukฤ™ modeli Django i widokรณw opartych na klasach.

Tak. Django czฤ™sto obsล‚uguje modele uczenia maszynowego za poล›rednictwem widokรณw lub frameworka Django REST, udostฤ™pniajฤ…c predykcje jako punkty koล„cowe API. Wytrenowany model ล‚aduje siฤ™ raz podczas uruchamiania i zwraca wyniki wnioskowania klientom internetowym lub mobilnym.

GitHub Copilot i podobne asystenty AI automatycznie uzupeล‚niajฤ… modele, widoki i inne funkcje Django. URL Wzorce i testy mogฤ… byฤ‡ rusztowaniem dla powtarzalnych szablonรณw. Przyspieszajฤ… one rozwรณj, choฤ‡ wygenerowany kod powinien byฤ‡ zawsze sprawdzany pod kฤ…tem bezpieczeล„stwa i poprawnoล›ci.

Podsumuj ten post nastฤ™pujฤ…co: