Szkolenie Django
Poziom
PodstawowyCzas
32h / 4 dniTermin
IndywidualnieCena
IndywidualnieSzkolenie Django
Czterodniowe szkolenie prowadzi uczestników przez budowę aplikacji internetowej w aktualnie wspieranej wersji Django – od konfiguracji projektu, routingu, widoków i szablonów po modele danych, formularze, uwierzytelnianie, testy oraz REST API z wykorzystaniem Django REST Framework. Uczestnicy przygotują funkcjonalny projekt końcowy obejmujący interfejs webowy, bazę danych, kontrolę dostępu, automatyczne testy i API. Program uwzględnia bezpieczeństwo konfiguracji, optymalizację zapytań, podstawy cache, pracę w środowisku WSGI i ASGI oraz checklistę gotowości do wdrożenia. Zakres obejmuje przygotowanie aplikacji do publikacji.
Dla kogo jest to szkolenie?
Programiści Python bez doświadczenia w Django, którzy znają funkcje, klasy, moduły, wyjątki, kolekcje oraz pracę z pip i środowiskiem wirtualnym
Początkujący deweloperzy webowi znający podstawy protokołu HTTP, HTML i CSS oraz ogólne zasady komunikacji przeglądarki z serwerem
Specjaliści IT przygotowujący prototypy aplikacji, panele administracyjne lub REST API, posiadający podstawową znajomość relacyjnych baz danych i języka SQL
Osoby planujące rozwój w kierunku backendu lub full-stack developmentu, które potrafią pracować w terminalu, korzystać z systemu Git i samodzielnie analizować komunikaty błędów. Szkolenie nie obejmuje nauki Pythona od podstaw
Czego nauczysz się na szkoleniu?
- Skonfigurujesz projekt i aplikacje Django, przygotujesz routing, widoki, szablony oraz ustawienia zależne od środowiska
- Zaprojektujesz modele i relacje, wykonasz migracje oraz przygotujesz operacje CRUD, formularze, walidację i obsługę plików
- Zaimplementujesz rejestrację, logowanie, uprawnienia i ochronę danych użytkowników oraz przygotujesz testy modeli, formularzy i widoków
- Zbudujesz REST API zawierające serializatory, endpointy CRUD, paginację, filtrowanie, uwierzytelnianie i kontrolę dostępu
- Przygotujesz funkcjonalną aplikację końcową, zweryfikujesz jej działanie testami, ograniczysz zbędne zapytania do bazy i utworzysz checklistę gotowości do wdrożenia
Program szkolenia
Dzień 1
Moduł 1: Wprowadzenie do Django
- Historia, filozofia „batteries included”, architektura MVT oraz zastosowania Django w aplikacjach internetowych, panelach administracyjnych i usługach API
- Środowisko Python i Django: pip, venv, izolacja zależności, wybór wspieranej wersji frameworka oraz pliki zależności projektu
- Pierwszy projekt i aplikacja Django: polecenia startproject i startapp, konfiguracja aplikacji oraz podstawowy przepływ żądania
- Struktura projektu: pliki settings.py, urls.py, views.py, models.py, konfiguracja aplikacji oraz podział odpowiedzialności
- Serwer deweloperski i polecenia zarządzające: runserver, check, konsola Django, komunikaty diagnostyczne oraz ograniczenia środowiska lokalnego
Moduł 2: Routing i widoki
- Mapowanie adresów URL: funkcja path(), konwertery parametrów, przestrzenie nazw, dołączanie konfiguracji aplikacji oraz nazwy tras
- Widoki funkcyjne i klasowe: struktura obsługi żądania, podstawowe widoki generyczne, dobór podejścia oraz czytelność kodu
- Obiekty HttpRequest i HttpResponse: metody HTTP, parametry ścieżki, dane zapytania, dane formularza, nagłówki i kody odpowiedzi
- Django Template Language: kontekst szablonu, zmienne, tagi, filtry, dziedziczenie układu, komponenty wielokrotnego użytku oraz automatyczne zabezpieczenie treści HTML
Moduł 3: Modele Django i ORM
- Modele i pola danych: typy pól, wartości domyślne, ograniczenia, indeksy, metadane modelu oraz reprezentacja obiektów
- Relacje między modelami: OneToOneField, ForeignKey, ManyToManyField, integralność referencyjna oraz zachowanie przy usuwaniu rekordów
- Migracje schematu: pliki migracji, zależności, polecenia makemigrations i migrate, podgląd zmian oraz bezpieczne modyfikacje modelu
- Panel administracyjny Django: rejestracja modeli, konfiguracja list, filtry, wyszukiwanie, formularze administracyjne oraz kontrola dostępu
Dzień 2
Moduł 4: Operacje na danych i formularze
- Django ORM i QuerySet: operacje CRUD, filtrowanie, wykluczanie, sortowanie, paginacja, aktualizacje zbiorcze oraz leniwe wykonywanie zapytań
- Formularze forms.Form i forms.ModelForm: definicje pól, widżety, wiązanie danych, zapis modelu oraz prezentacja formularza w szablonie
- Walidacja danych i obsługa błędów: walidatory pól, metody clean(), komunikaty błędów, walidacja zależności między polami oraz spójność danych
- Obsługa plików: pola FileField i ImageField, dane multipart/form-data, ustawienia MEDIA_ROOT i MEDIA_URL, ograniczenia plików oraz bezpieczne nazwy
Moduł 5: Uwierzytelnianie i autoryzacja
- System użytkowników Django: model użytkownika, profil, niestandardowy model użytkownika, grupy, uprawnienia oraz rola administratora
- Rejestracja, logowanie, wylogowanie i odzyskiwanie dostępu: formularze uwierzytelniania, hashowanie haseł, komunikaty oraz przekierowania
- Sesje, ciasteczka i kontrola dostępu: dekoratory, mixiny, uprawnienia obiektowe, ochrona CSRF, ustawienia bezpieczeństwa cookies oraz ograniczenie ekspozycji danych
Moduł 6: Frontend i testowanie aplikacji
- Integracja warstwy frontendowej: HTML, CSS, JavaScript, przekazywanie danych z widoków, obsługa formularzy oraz komunikaty użytkownika
- Pliki statyczne i biblioteki frontendowe: konfiguracja STATIC_URL, katalogi zasobów, polecenie collectstatic, Bootstrap oraz organizacja komponentów interfejsu
- Testy aplikacji: testy modeli, widoków, formularzy i routingu, klient testowy Django, dane testowe, izolacja przypadków oraz podstawy pokrycia kodu
- Diagnostyka aplikacji: strony błędów, logowanie, Django Debug Toolbar, system checks, analiza stosu wywołań oraz rozdzielenie konfiguracji deweloperskiej i produkcyjnej
Dzień 3
Moduł 7: Wprowadzenie do API
- Architektura REST i Django REST Framework: zasoby, reprezentacje, metody HTTP, kody odpowiedzi, format JSON oraz różnice między widokiem HTML a endpointem API
- Serializatory i widoki API: Serializer, ModelSerializer, walidacja danych, konwersja obiektów, APIView oraz podstawowe endpointy CRUD
- Endpointy i routing API: konfiguracja adresów, parametry ścieżki, obiekt Request, obiekt Response, obsługa wyjątków oraz spójna struktura odpowiedzi
Moduł 8: Zaawansowane funkcje DRF
- Widoki generyczne, mixiny, GenericAPIView, ViewSet i ModelViewSet: zakres automatyzacji, routery, akcje standardowe oraz dobór poziomu abstrakcji
- Paginacja, filtrowanie i sortowanie: limity wyników, parametry zapytania, backendy filtrujące, pola dozwolone oraz stabilny porządek rekordów
- Obsługa plików przez API: parsery danych, serializatory plików, walidacja typu i rozmiaru, odpowiedzi błędów oraz kontrola dostępu do zasobów
- Uwierzytelnianie i autoryzacja API: sesje, tokeny, JWT z biblioteką zewnętrzną, klasy uprawnień, zasady dostępu, throttling oraz różnica między identyfikacją a uprawnieniami
Moduł 9: Zaawansowane tematy Django
- Middleware: kolejność wykonania, przetwarzanie żądań i odpowiedzi, własne komponenty, kontekst użytkownika oraz wpływ na bezpieczeństwo i wydajność
- Sygnały Django: nadawcy, odbiorcy, reakcje na zdarzenia, transakcje, skutki uboczne oraz ryzyko ukrytych zależności w kodzie
- Optymalizacja ORM: select_related, prefetch_related, annotate, aggregate, indeksy, analiza liczby zapytań oraz eliminacja problemu N+1
- Cache, Redis i zadania w tle: strategie cache, klucze, czas życia, unieważnianie danych, kontrakt zadań Django oraz rola zewnętrznego procesu wykonawczego
Dzień 4
Moduł 10: Wdrożenie i praktyczne wskazówki
- Dobre praktyki REST API: nazewnictwo zasobów, semantyka metod i kodów HTTP, walidacja, obsługa błędów, wersjonowanie, dokumentacja OpenAPI oraz ograniczenie ujawnianych danych
- Środowisko produkcyjne: WSGI i ASGI, Gunicorn, Uvicorn, Nginx, reverse proxy, pliki statyczne, pliki użytkowników oraz rozdzielenie odpowiedzialności komponentów
- WebSockety i aplikacje czasu rzeczywistego: Django Channels, warstwa ASGI, połączenia długotrwałe, przypadki użycia oraz ograniczenia podejścia synchronicznego
- Gotowość do wdrożenia: zmienne środowiskowe, SECRET_KEY, DEBUG, ALLOWED_HOSTS, HTTPS, migracje, collectstatic, logowanie, health checks oraz checklista bezpieczeństwa konfiguracji
Moduł 11: Realizacja projektu końcowego
- Funkcjonalna aplikacja Django: wymagania domenowe, modele, migracje, operacje CRUD, formularze, uwierzytelnianie oraz panel administracyjny
- Integracja frontendu z backendem: routing, widoki, szablony, pliki statyczne, komunikaty, obsługa błędów oraz spójny przepływ użytkownika
- Testy i API projektu: serializatory, endpointy, uprawnienia, przypadki testowe, analiza zapytań ORM oraz kontrola gotowości do prezentacji
Moduł 12: Podsumowanie i pytania
- Podsumowanie architektury aplikacji, przepływu żądań, warstwy danych, bezpieczeństwa, testów, API oraz procesu przygotowania do wdrożenia
- Indywidualne pytania, konsultacje techniczne, przegląd fragmentów projektu oraz analiza alternatywnych rozwiązań
- Materiały dodatkowe, dokumentacja oficjalna, środowisko demonstracyjne, checklista dalszego rozwoju oraz kierunki rozbudowy projektu