Diversity w polskim IT
Maciej Olanicki
Maciej OlanickiRedakcja Bulldogjob

Czy warto uczyć się Django?

Czy warto uczyć się Django? Najpopularniejszy webowy framework Pythona ma przed sobą świetlaną przyszłość.
15.12.20214 min
Czy warto uczyć się Django?

Przed tygodniem opublikowano nową wersję Django, najpopularniejszego webowego frameworka dla Pythona. W wydaniu 4.0 dodano między innymi argument pozwalający na korzystanie z unikalnych ograniczeń, dodano obsługę nowej funkcji skrótu czy wbudowane wsparcie dla Redisa. To dobra okazja, by przyjrzeć się bliżej funkcjonalności Django, jego zastosowaniom i największym zaletom. A także odpowiedzieć sobie na pytanie: dlaczego warto się dziś uczyć Django?

Czym jest Django

Django to framework pozwalający budować witryny i aplikacje przeglądarkowe z użyciem Pythona. Od 2005 roku rozwijany jest jako wolne i darmowe oprogramowanie działające w modelu Model-View-Template. 

W skrócie można powiedzieć, że w MVT Model stanowi warstwę obsługującą bazy danych, Template odpowiada za wyświetlanie danych i UI, zaś View odpowiada za logikę biznesową, wchodzi w interakcje z modelem, a zatem pośrednio z bazami danych, i renderuje na ich podstawie template. W porównaniu z frameworkami wykorzystującymi model MVC, View w Django zostało sprowadzone do funkcji wywołania zwrotnego opisującego, jakie dane mają być prezentowane. Jako taki kontroler w modelu MVT nie istnieje, jednak część jego funkcji realizowanych jest przez samo Django.

Dzięki Django możliwe jest budowanie dużych stron internetowych wykorzystujących zróżnicowane bazy danych w relatywnie prosty i szybki sposób, zgodnie z założeniami metodyki rapid development. Za sprawą bogactwa gotowych komponentów możliwych do wykorzystania na oraz licznych rozszerzeń, Django pozwala tworzyć nawet bardzo złożone strony w zgodności z DRY. Całość od początku do końca napisana została w Pythonie, co jest jednym z czynników, dzięki którym próg wejścia Django nie jest szczególnie wysoki.

Rosnąca popularność względnie nietrudnego do nauczenia się Pythona i wszechstronność tego języka szybko przełożyła się na popularność Django oraz innych pythonowych webowych frameworków, np. Flaska. Dziś swoje witryny z użyciem Django budują najpopularniejsze serwisy internetowe, dość wspomnieć YouTube, Instagram czy Spotify.

Django – dlaczego warto go poznać

Skoro mamy już pewien ogląd tego, czym jest i jakie zastosowania znajduje Django, warto poświęcić teraz uwagę tym cechom frameworka, dzięki którym warto się z nim zapoznać. 

Rzecz jasna wybór frameworka powinien być podyktowany właściwościami samego projektu, być może w przypadku mniej skomplikowanych witryn lepszym wyborem będzie choćby Flask, niemniej od 15 lat to Django pozostaje liderem i sprawdza się wszędzie tam, gdzie do czynienia mamy z dużymi, skomplikowanymi witrynami i bazami danych. Przyjrzyjmy się przyczynom tak dużej popularności.


Wartościowa dokumentacja

Jedną z najczęściej wymienianych zalet Django jest wspomniana już łagodna krzywa uczenia. Powodem jest tu nie tylko stosunkowo czytelna składnia samego Pythona, ale także świetnie opracowana dokumentacja Django. Nie brakuje nawet głosów, że wśród przedsięwzięć opensource’owych dokumentacja Django jest po prostu najwyższej jakości. Wiele artykułów zostało przetłumaczonych na kilka języków, część z nich dostępna jest także po polsku. 

Co ważne, mimo że Django nie należy do najtrudniejszych w obsłudze frameworków, to nie oznacza to, że jego możliwości są ograniczone. Wręcz przeciwnie, jedną z najczęściej wymienianych zalet jest jego wszechstronność. Jak już wspomniano, dzięki Django powstawały gigantyczne media społecznościowe, ale nic nie stoi, by z użyciem tego narzędzia uruchomić prosty sklep internetowy, a nawet statycznego bloga. 


Panel administracyjny

Jedna z najbardziej chwalonych funkcji Django jest całkowicie opcjonalna w praktycznym wdrożeniu, ale może znacząco uprościć zarządzanie witryną w codziennej praktyce. Chodzi o panel administracyjny. Po wdrożeniu automatycznie generowany jest dynamiczny interfejs admina, w którym wszelkie operacje CRUD można wykonać z poziomu graficznego interfejsu użytkownika, bez konieczności pisania jakiegokolwiek kodu.

Funkcjonalność panelu admina w Django jest jednak znacznie większa. Swobodnie można tu zarządzać użytkownikami czy uprawnieniami w dostępie do baz danych. Całość jest w pełni konfigurowalna, to administrator decyduje o tym, co jest wyświetlane w panelu, a także responsywna i zwyczajnie czytelna. Jak już wspomniano, korzystanie z panelu nie jest obowiązkowe i nic nie stoi na przeszkodzie, by wszelkich operacji dokonywać ręcznie, niemniej z całą pewnością jest to wartościowy komponent Django.


Bezpieczeństwo

Mocną stroną Django, która dla wielu może się okazać najważniejszym czynnikiem przy wyborze frameworka, jest jego bezpieczeństwo. Jak nietrudno sobie wyobrazić, zarządzanie skomplikowaną usługą webową łączącą się z dużymi bazami danych, wymaga jak największej dbałości o ochronę danych. Na szczęście przed całymi klasami podatności Django jest zabezpieczony „by design”, co przekłada się na jego popularność wśród dostawców największych usług internetowych.

Decydując się na wykorzystanie Django, nie musimy martwić się między innymi o cross-site scripting, wstrzykiwanie SQL czy clickjacking. Ponadto framework domyślnie po instalacji wiele potencjalnych luk w back-endzie, których załataniem w przypadku innych frameworków musi zająć się developer. 

Warto także zwrócić uwagę na kwestię architektury – Django zostało napisane w Pythonie całkowicie od zera i nie wykorzystuje kodu innych rozwiązań (do stworzenia Django nie użyto dosłownie żadnej już istniejącej biblioteki Pythona), co stanowi dodatków utwierdzenie bezpieczeństwa. Wiemy dzięki temu, że np. złośliwy kod w zewnętrznej bibliotece czy paczce nie wpłynie na bezpieczeństwo witryny.


Skalowalność i niezawodność

Uniwersalność Django sprawia, że trudno wskazać najczęściej powielany typ projektu zrealizowanego z użyciem frameworka. Jak już wspomniano, dzięki Django może powstać statyczny blog, jak i potężny portal społecznościowy. Co jednak ważne, ze względu na swoją architekturę i rzeczony wzorzec projektowy MVT, Przy odpowiedniej konfiguracji Django będzie wydajne i skalowalne w każdym projekcie. Nawet w przypadku serwisów generujących terabajty danych dziennie Django sprawdzi się świetnie.

Jeśli jednak zamierzamy uruchomić duży serwis, to nie mniej ważnym aspektem niż skalowalność jest kwestia przyszłości frameworka. Pod tym względem Django również wypada bardzo dobrze, a to za sprawą licznej społeczności prężnie rozwijającej narzędzie, ale także dzięki zainteresowaniu dużych korporacji, które od Django uzależniły działanie swoich usług. Dzięki temu możemy być pewni, że tworzony od 15 lat framework ma przed sobą jeszcze wiele lat rozwoju i stabilną przyszłość.

<p>Loading...</p>