Django
Specjalizujemy się w tworzeniu aplikacji internetowych napisanych w Pythonie z wykorzystaniem frameworka Django. W naszych projektach korzystamy również z Django CMS i Django Rest Framework.
Dlaczego Django?
Zakres prac
Posiadamy doświadczenie w tworzeniu aplikacji internetowych napisanych w Pythonie z wykorzystaniem frameworka Django. W naszych projektach korzystamy również z Django CMS i Django Rest Framework. Wykorzystujemy Django przede wszystkim w procesie budowania:
Nasi Klienci
Polski Związek Motorowy
Adamed
Polska Agencja Prasowa
Astor
IFX Payments
TEB Edukacja
Fundacja Moc Pomocy
Elemental Holding
French Touch
Polski Komitet Normalizacyjny
TU
Bergakademie Freiberg
Bank Nowy BFG
Narodowe Centrum Promieniowania Synchrotronowego SOLARIS
Astorino Kawasaki Robotics
DTK&W Zespół Ogłoszeniowy
Opegieka
Crazy shop
PartyBox
WUOZ w Krakowie
Uniwersytet Medyczny w Łodzi
Grupa Mo
Jeleniogórska Organizacja Turystyczna
eFitness
Instytut Badań Literackich PAN
Danhoss
Fundacja Sztuki, Przygody i Przyjemności ARTS
Opennet.pl
Centrum Medyczne Intermed
Centrum Rozwoju Edukacji Edicon
Winner Europe
Po amputacji
MamMoc.pl
EtnoStoria
Widzisz Wszystko
EMKA Project
NowaLed ILL
Eco Light LED
LoxiMide
Fundacja AVLab.pl
RCC Nova
Vector Controls
Virtual SMS
Parus Holdings
Biuro Partner
Optime.AI
M2M Team
Oprócz platformy zbiorowej stworzyliśmy panel administracyjny wspierający proces weryfikacji/zatwierdzania nowych zbiórek, rozliczania zakończonych oraz rozbudowany moduł raportowy.
Backend aplikacji został stworzony w Django przy użyciu bazy danych PostgreSQL, natomiast do frontendu wykorzystaliśmy Angular. Całość działa w architekturze AWS.
W celu stworzenia tego systemu zdecydowaliśmy się na użycie frameworku Django, wykorzystując bazę danych PostgreSQL. Dla warstwy frontendowej skorzystaliśmy z bibliotek Bootstrap i jQuery.
Czym jest Django?
Django jest darmowym, otwartym frameworkiem napisanym w Pythonie, umożliwiającym szybkie tworzenie bezpiecznych, skalowalnych i łatwych w utrzymaniu witryn internetowych. Framework posiada zbiór modułów ułatwiających programowanie. Django dostarcza programistom wszystkie komponenty niezbędne do zbudowania strony internetowej. Korzystając z frameworka programiści nie muszą samodzielnie opracowywać wielu zaawansowanych funkcji takich jak: panel zarządzania lub proces uwierzytelniania, lecz korzystają z gotowych komponentów dostarczonych przez Django. Dzięki temu, praca programistów ogranicza się jedynie do skonfigurowania komponentów w taki sposób, aby pasowały do danej witryny internetowej.
Django wykorzystuje się zarówno do budowania back-endu jak i front-endu. Język szablonów Django został zaprojektowany w taki sposób, aby był zrozumiały i łatwy do nauczenia przez programistów front-endowych przyzwyczajonych do pracy z HTML. Warto podkreślić, że Django jest bardzo elastyczny i rozszerzalny. Dzięki temu programiści bardzo łatwo mogą rozszerzyć system szablonów o nowe elementy i funkcje.
Charakterystyka Django
Django charakteryzuje się przede wszystkim elastycznością, niezawodnością i skalowalnością. Dodatkowo Django posiada własny, prosty w obsłudze panel administracyjny oraz bogatą bibliotekę HTTP. Warto wspomnieć, że Django zawiera implementację ORM (Object-Relational Mapping), czyli mapowanie obiektowo-relacyjne. ORM wykorzystywany jest w systemach z bazą danych i ułatwia obsługę danych. ORM umożliwia m.in. dodawanie, usuwanie i edycję danych.
Framework posiada testowy serwer, a jego architektura oparta jest o wzorzec MVT (Model-View-Template), który jest modyfikacją wzorca MVC (Model-View-Controller). We wzorcu MVT warstwa widoku działa podobnie do kontrolera w MVC, natomiast szablon zachowuje się jak widok w MVC. Takie rozwiązanie pozwala na oddzielenie kontekstu od logiki biznesowej, co oznacza, że każda warstwa wykonuje oddzielne zadania i ma swoje własne obowiązki. W modelu MVT widoki odbierają żądania HTTP i delegują formułowanie odpowiedzi do szablonów, a modele określają strukturę danych i nimi zarządzają.
Zalety Django
Django jest jednym z najpopularniejszych frameworków umożliwiających programowanie w Pythonie. Swoją popularność Django zawdzięcza posiadaniu licznych zalet. Poniżej zaprezentujemy najważniejsze zalety tego frameworka.
Kompletność
Django kieruje się filozofią “Batteries included”, która polega na tym, że tworzenie aplikacji traktuje się jak zbudowanie jednego, gotowego produktu. Dzięki stosowaniu tej filozofii, Django dostarcza programistom wszystkie funkcje i komponenty niezbędne do zbudowania całej aplikacji. Framework dba o to, aby wszystkie funkcje bezproblemowo współpracowały ze sobą. Django posiada wiele bibliotek, które obsługują typowe zadania związane z tworzeniem aplikacji takie jak: uwierzytelnianie użytkowników lub zarządzanie treścią. Dodatkowo framework posiada własny panel administracyjny do domyślnego zarządzania danymi modeli.
Szybkość i prostota
Głównym celem Django jest ułatwienie pracy programistom. Nic więc dziwnego, że Django stosuje się do zasad szybkiego programowania i umożliwia programistom wykonywanie kilku iteracji jednocześnie. Programiści doceniają Django również ze względu na jego prostotę. Framework wykorzystuje język Python, który uważany jest za jeden z najłatwiejszych języków programowania. Z tego powodu nauka zarówno Pythona jak i Django jest stosunkowo łatwa i przyjemna. Programiści tworzący aplikacje w Django, korzystają ze zrozumiałej i przejrzystej składni Pythona.
Bezpieczeństwo
Jednym z głównych priorytetów Django jest dbałość o bezpieczeństwo. Django pomaga programistom w uniknięciu wielu typowych błędów zagrażających bezpieczeństwu, poprzez dostarczenie odpowiedniej struktury, która automatycznie chroni witrynę. Framework dostarcza gotowe mechanizmy umożliwiające bezpieczne zarządzanie kontami użytkowników i hasłami. Warto podkreślić, że framework domyślnie zapewnia ochronę przed wieloma lukami w zabezpieczeniach takich jak: wstrzykiwanie SQL, atak CSRF, fałszowanie żądań między witrynami czy przechwytywanie kliknięć.
Skalowalność
Dzięki architekturze opartej o wzorzec MVT, strony wykonane w Django skalują się bardzo łatwo i szybko. Framework wyraźnie oddziela różne części architektury od siebie, dzięki czemu każda część jest niezależna od pozostałych, co znacząco ułatwia proces skalowania i development. Bardzo łatwo dodaje się różne serwery takie jak: serwery pamięci podręcznej, serwery baz danych lub serwery aplikacji. Skalowanie strony internetowej ma na celu przede wszystkim spełnienie coraz większych wymagań wynikających z rosnącego ruchu na stronie.
Wieloplatformowość
Aplikacje i strony powstałe w Django działają na wielu platformach takich jak: Windows, Linux i Mac OS. Oznacza to, że każdą aplikację napisaną w jednym systemie operacyjnym, można bez większych problemów uruchomić na innym systemie.
Społeczność
Django skupia wokół siebie dużą i zaangażowaną społeczność, która realnie przyczynia się do rozwoju frameworku. Członkowie społeczności aktywnie pracują nad tworzeniem nowych funkcji i bibliotek ułatwiających pracę programistów. Dodatkowo większość członków społeczności chętnie pomaga innym osobom w rozwiązywaniu problemów z frameworkiem.
Ograniczenia Django
Django oprócz licznych zalet posiada również kilka ograniczeń. Poniżej zaprezentujemy największe niedoskonałości frameworka.
Brak konwencji
W porównaniu do innych frameworków np. Ruby on Rails, Django nie posiada określonych zasad postępowania, których programiści przestrzegają przy tworzeniu stron internetowych. W Django każdy obiekt musi być zdefiniowany i skonfigurowany z resztą. W miarę postępu prac powstaje coraz więcej składników wymagających zdefiniowania i skonfigurowania. W rezultacie brak konwencji spowalnia rozwój rozwiązania technologicznego.
Monolityczność
Django jest bardzo monolityczny, co oznacza, że posiada niewielką liczbę zależności. Im mniejsza liczba zależności, tym więcej kodu należy samemu napisać. Dodatkowo wielu programistów błędnie zakłada, że Django jest pojedynczym pakietem umożliwiającym zbudowanie strony internetowej.
Nieodpowiedni dla małych projektów
Django został zaprojektowany z myślą o dużych i skalowalnych projektach, dlatego nie jest najlepszym rozwiązaniem dla prostych i niewielkich projektów. Ze względu na swoją strukturę, specyfikę i posiadanie wielu funkcji niezbędnych w złożonych projektach, tworzenie małych witryn sieciowych w Django jest stosunkowo trudne i czasochłonne. W przypadku niewielkiego projektu warto skorzystać z innego frameworka niż Django.
Historia powstania Django
Początki Django sięgają 2003 roku, kiedy to programiści gazety Lawrence Journal-World zaczęli tworzyć strony internetowe w Pythonie. Po utworzeniu kilku witryn, programiści przeanalizowali napisany kod i zauważyli, że znaczna jego część jest taka sama we wszystkich projektach. Ten wspólny kod ewoluował w ogólny framework do tworzenia stron internetowych, który został udostępniony jako Django w lipcu 2005 r. Nazwa Django pochodzi od słynnego gitarzysty jazzowego Django Reinhardta.
Od tego czasu Django jest stale rozwijany i ulepszany. Każda kolejna wersja zawiera nowe funkcje i możliwości. Przez lata do frameworku dodano obsługę nowych typów baz danych, nowe szablony i klasy widoków. Od 2008 r. rozwojem frameworku zajmuje się fundacja Django Software Foundation. Fundacja nie tylko zajmuje się rozwijaniem frameworku, ale także promocją Django i ochroną własności intelektualnej.
Popularność Django
Django jest jednym z najpopularniejszych frameworków służących do budowania stron internetowych. Obecnie w Django powstaje bardzo wiele witryn, a liczba programistów wykorzystujących ten framework nieustannie rośnie. Na popularność Django wpływa również zainteresowanie dużych firm takich jak: Pinterest lub Mozilla. Znane i cenione marki używają Django w swoich projektach i inwestują w jego rozwój.
Z platformy Statista wynika, że Django należy do pierwszej dziesiątki najczęściej używanych frameworków wykorzystywanych do budowania stron internetowych. Znalazł się również na liście Stack Overflow 2019 obejmującej dziesięć najpopularniejszych technologii webowych.
Istnieje wiele powodów rosnącej popularności frameworka. Przede wszystkim Django zapewnia wszystkie funkcje i elementy niezbędne do zbudowania nowoczesnej strony internetowej. Posiada zaangażowaną i silną społeczność, która tworzy dobrze działający ekosystem. Dodatkowo framework oferuje wiele pakietów, których liczba nieustannie zwiększa się z roku na rok. W 2017 r. dostępnych było 3400 pakietów, a w 2019 r. można było skorzystać już z 4000 pakietów.
Przykłady znanych projektów w Django
Django wykorzystywany jest przez wiele firm, w tym także przez internetowych gigantów. Poniżej zaprezentujemy firmy i organizacje wykorzystujące Django w swoich projektach.
Instagram jest jednym z najpopularniejszych serwisów społecznościowych wykorzystujących Django. Framework obsługuje dużą ilość danych oraz umożliwia interakcje użytkowników. Dzięki Django aplikacja internetowa działa płynnie i bez zakłóceń.
Spotify
Spotify jest olbrzymią biblioteką multimedialną. Twórcy serwisu postanowili połączyć framework Django z uczeniem maszynowym do sprawnego zarządzania ilością danych. Programiści wybrali technologię Django przede wszystkim dzięki możliwościom szybkiego budowania back-endu.
The Washington Post
Nic dziwnego, że framework stworzony na potrzebę obsługi witryny internetowej gazety Lawrence Journal-World, wykorzystywany jest także przez inne gazety, do których należy m.in. The Washington Post. Framework umożliwia płynne funkcjonowanie nawet przy dużym ruchu.
Dropbox
Technologia chmury służąca do przechowywania plików wymaga przede wszystkim wysokiej wydajności. Django dostarcza odpowiednich narzędzi, które Dropbox wykorzystuje do synchronizacji, skalowania i udostępniania plików.
Pinterest jest platformą liczącą ponad 250 milionów aktywnych miesięcznie użytkowników. Django obsługuje ogromną ilość danych multimedialnych obecnych na stronie i utrzymuje przyjazny interfejs użytkownika.
YouTube
YouTube jest jednym z najpopularniejszych serwisów internetowych umożliwiających bezpłatne zamieszczanie, oglądanie, ocenianie i komentowanie filmów. Po raz pierwszy został zbudowany w technologii PHP, ale szybki wzrost użytkowników spowodował, że twórcy serwisu zaczęli wykorzystywać Django. Wybór technologii był w pełni uzasadniony, ponieważ Django lepiej obsługuje duży ruch na stronie oraz oferuje możliwości dodawania nowych funkcji.