Czym jest framework Django?
W tym pierwszym artykule dotyczącym Django odpowiemy na pytanie "Czym jest Django?" i przedstawimy przegląd tego, co sprawia, że ten framework webowy jest wyjątkowy.
Omówimy główne funkcje, w tym niektóre zaawansowane możliwości, które nie zostaną szczegółowo opisane w tym module. Pokażemy również niektóre z głównych elementów składowych aplikacji Django (choć na tym etapie nie będziesz jeszcze mieć środowiska deweloperskiego, aby je przetestować).
Czym jest Django?
Django to zaawansowany framework webowy w języku Python, który umożliwia szybkie tworzenie bezpiecznych i łatwych w utrzymaniu witryn internetowych. Stworzony przez doświadczonych deweloperów, Django usuwa wiele trudności związanych z tworzeniem aplikacji webowych, pozwalając skupić się na pisaniu samej aplikacji, bez konieczności "wynajdywania koła na nowo". Django jest darmowy i otwartoźródłowy, ma aktywną społeczność, doskonałą dokumentację i wiele opcji wsparcia zarówno bezpłatnego, jak i płatnego.
Django pomaga pisać oprogramowanie, które jest:
Kompletne
Django przestrzega filozofii "Batteries included" i zapewnia niemal wszystko, czego mogą potrzebować deweloperzy "od razu po wyjęciu z pudełka". Wszystko, czego potrzebujesz, jest częścią jednego "produktu", działa bezproblemowo razem, przestrzega spójnych zasad projektowania i ma obszerną, aktualną dokumentację.
Wszechstronne
Django może być (i był) używany do budowy prawie każdego rodzaju witryny — od systemów zarządzania treścią i wiki, po sieci społecznościowe i serwisy informacyjne. Może współpracować z dowolnym frameworkiem po stronie klienta i dostarczać treści w niemal każdym formacie (w tym HTML, RSS, JSON i XML).
Bezpieczne
Django pomaga deweloperom unikać wielu typowych błędów związanych z bezpieczeństwem, oferując framework, który automatycznie "robi właściwe rzeczy", aby chronić witrynę. Na przykład, Django zapewnia bezpieczny sposób zarządzania kontami użytkowników i hasłami, unikając typowych błędów, takich jak przechowywanie informacji o sesji w plikach cookie, gdzie są one podatne na ataki (zamiast tego pliki cookie zawierają tylko klucz, a dane są przechowywane w bazie danych) czy bezpośrednie przechowywanie haseł zamiast ich haszowania.
Skalowalne
Django używa architektury opartej na komponentach "shared-nothing" (każda część architektury jest niezależna od innych i może być zastąpiona lub zmieniona, jeśli to konieczne). Jasne rozdzielenie różnych części oznacza, że może skalować się, dodając sprzęt na dowolnym poziomie: serwery cache, serwery baz danych lub serwery aplikacji. Niektóre z najbardziej obciążonych witryn skutecznie skalowały Django, aby sprostać swoim wymaganiom (np. Instagram i Disqus).
Łatwe w utrzymaniu
Kod Django jest pisany zgodnie z zasadami projektowania, które zachęcają do tworzenia kodu łatwego w utrzymaniu i wielokrotnego użytku. W szczególności stosuje zasadę "Don't Repeat Yourself" (DRY), co oznacza brak zbędnych powtórzeń, zmniejszając ilość kodu. Django promuje grupowanie powiązanych funkcji w wielokrotnie używalne "aplikacje", a na niższym poziomie grupuje powiązany kod w moduły (zgodnie z wzorcem Model View Controller (MVC)).
Przenośne
Django jest napisane w Pythonie, który działa na wielu platformach. Oznacza to, że nie jesteś związany z żadną konkretną platformą serwerową i możesz uruchamiać swoje aplikacje na różnych systemach operacyjnych, takich jak Linux, Windows i macOS. Ponadto Django jest dobrze wspierane przez wielu dostawców hostingu webowego, którzy często oferują specjalistyczną infrastrukturę i dokumentację do hostingu witryn Django.
Skąd pochodzi Django?
Django został początkowo opracowany w latach 2003-2005 przez zespół webowy odpowiedzialny za tworzenie i utrzymywanie stron internetowych gazet. Po stworzeniu wielu stron zespół zaczął wydzielać i ponownie używać dużo wspólnego kodu i wzorców projektowych. Ten wspólny kod ewoluował w uniwersalny framework do tworzenia aplikacji webowych, który został udostępniony jako projekt "Django" w lipcu 2005 roku.
Django kontynuuje rozwój i doskonalenie, od pierwszego wydania (1.0) we wrześniu 2008 roku do wersji 5.0 pod koniec 2023 roku. Każde wydanie dodaje nową funkcjonalność i poprawki błędów, od wsparcia dla nowych typów baz danych, przez silniki szablonów, po funkcje widoków ogólnych, które redukują ilość kodu, jaki deweloperzy muszą pisać przy różnych zadaniach programistycznych.
Jak popularny jest Django?
Nie ma łatwo dostępnych i ostatecznych pomiarów popularności frameworków po stronie serwera (choć można oszacować popularność, licząc liczbę projektów na GitHubie i pytań na StackOverflow dla każdej platformy). Lepszym pytaniem jest, czy Django jest "wystarczająco popularny", aby uniknąć problemów niepopularnych platform. Czy nadal się rozwija? Czy możesz uzyskać pomoc, jeśli jej potrzebujesz? Czy istnieje możliwość zdobycia płatnej pracy, jeśli nauczysz się Django?
Na podstawie liczby witryn wysokoprofilowych, które używają Django, liczby osób przyczyniających się do kodu oraz liczby osób oferujących wsparcie, zarówno bezpłatne, jak i płatne, odpowiedź brzmi: tak, Django jest popularnym frameworkiem!
Jak wygląda kod Django?
W tradycyjnej witrynie internetowej napędzanej danymi, aplikacja webowa czeka na żądania HTTP od przeglądarki internetowej (lub innego klienta). Gdy otrzymuje żądanie, aplikacja określa, co jest potrzebne na podstawie adresu URL i ewentualnie informacji w danych POST lub GET. W zależności od potrzeb może następnie odczytywać lub zapisywać informacje w bazie danych lub wykonywać inne zadania niezbędne do zaspokojenia żądania. Aplikacja następnie zwraca odpowiedź do przeglądarki internetowej, często dynamicznie tworząc stronę HTML dla przeglądarki przez wstawienie pobranych danych do szablonów HTML.
Aplikacje Django zazwyczaj grupują kod obsługujący każdy z tych kroków w osobne pliki:
- URLs: Mapa adresów URL (URL mapper) jest używana do przekierowania żądań HTTP do odpowiednich widoków na podstawie adresu URL żądania.
- Widok: Widok to funkcja obsługi żądań, która otrzymuje żądania HTTP i zwraca odpowiedzi HTTP. Widoki uzyskują dostęp do danych potrzebnych do spełnienia żądań za pośrednictwem modeli i delegują formatowanie odpowiedzi do szablonów.
- Modele: Modele to obiekty Pythona, które definiują strukturę danych aplikacji i dostarczają mechanizmy do zarządzania (dodawania, modyfikowania, usuwania) i zapytań do rekordów w bazie danych.
- Szablony: Szablon to plik tekstowy definiujący strukturę lub układ pliku (takiego jak strona HTML), z miejscami do wstawiania rzeczywistej treści. Widok może dynamicznie tworzyć stronę HTML za pomocą szablonu HTML, wypełniając go danymi z modelu.
Django odnosi się do tej organizacji jako architektury "Model View Template (MVT)". Ma wiele podobieństw do bardziej znanej architektury Model View Controller.
Co jeszcze możesz zrobić z Django?
Powyższe sekcje pokazują główne funkcje, które będziesz używać w prawie każdej aplikacji webowej: mapowanie URL, widoki, modele i szablony. Inne funkcje oferowane przez Django to:
- Formularze: HTML Forms są używane do zbierania danych od użytkowników do przetworzenia na serwerze. Django upraszcza tworzenie, walidację i przetwarzanie formularzy.
- Uwierzytelnianie użytkowników i uprawnienia: Django zawiera solidny system uwierzytelniania użytkowników i uprawnień, który został zaprojektowany z myślą o bezpieczeństwie.
- Cache: Tworzenie treści dynamicznie jest znacznie bardziej wymagające obliczeniowo (i wolniejsze) niż serwowanie treści statycznych. Django zapewnia elastyczne mechanizmy cache'owania, dzięki czemu można przechowywać całą lub część renderowanej strony, aby nie była ponownie renderowana, chyba że jest to konieczne.
- Strona administracyjna: Strona administracyjna Django jest domyślnie dołączona, gdy tworzysz aplikację przy użyciu podstawowego szkieletu. Ułatwia to dostarczanie strony administracyjnej dla administratorów witryny do tworzenia, edytowania i przeglądania dowolnych modeli danych w Twojej witrynie.
- Serializacja danych: Django ułatwia serializację i serwowanie danych jako XML lub JSON. Może to być przydatne przy tworzeniu serwisu webowego (witryny, która dostarcza dane do konsumowania przez inne aplikacje lub strony, bez wyświetlania czegokolwiek samodzielnie) lub przy tworzeniu witryny, w której kod po stronie klienta obsługuje całe renderowanie danych.
Podsumowanie
Gratulacje, ukończyłeś pierwszy krok w swojej podróży z Django! Powinieneś teraz zrozumieć główne zalety Django, trochę o jego historii i ogólnie jak wyglądają główne części aplikacji Django. Powinieneś również nauczyć się kilku rzeczy o języku Python, w tym składni dla list, funkcji i klas.
Zobaczyłeś już trochę rzeczywistego kodu Django, ale w przeciwieństwie do kodu po stronie klienta, musisz skonfigurować środowisko deweloperskie, aby go uruchomić. To nasz następny krok.