1. Instalacja i konfiguracja Django:
Tworzenie projektu (django-admin startproject)
Tworzenie aplikacji (python manage.py startapp)
Struktura projektu i aplikacji Django
2. Django Models:
Definiowanie modeli w models.py
Typy pól modelu (CharField, IntegerField, DateField, itp.)
Migracje (makemigrations, migrate)
Operacje CRUD w Django ORM: create, filter, get, delete, itp.
3. Django Views:
Widoki funkcyjne (Function-Based Views – FBV)
Zwracanie prostych odpowiedzi HTTP (HttpResponse)
Widoki renderujące szablony (render())
4. Django Templates:
Tworzenie i używanie szablonów HTML
Template tags i filtry (np. {% for %}, {% if %},
{{ variable|filter }})
Przekazywanie danych z widoków do szablonów
5. Routing (URLs):
Tworzenie tras w urls.py
Wzorce URL i ich mapowanie do widoków
Dynamiczne parametry w URL (np. <int:id>)
6. Django Admin:
Rejestracja modeli w panelu admina
Modyfikacja panelu admina (np. list_display, search_fields)
7. Django Forms:
Tworzenie formularzy (forms.Form, forms.ModelForm)
Walidacja formularzy i wyświetlanie błędów
8. Zarządzanie statycznymi plikami:
Ustawianie plików CSS, JavaScript, obrazków (STATIC_URL,
STATIC_ROOT).
Używanie {% static %} w szablonach
Wdrażanie plików statycznych w środowisku produkcyjnym
(np. collectstatic).
9. Konfiguracja settings.py:
Baza danych (DATABASES)
Statyczne pliki (STATIC_URL, MEDIA_URL)
Middleware
10. Cookies
Ustawianie, odczytywanie i usuwanie cookies w Django.
Bezpieczne przechowywanie danych w cookies
(HTTPONLY, SECURE, SameSite).
11. Django Sessions
Mechanizm sesji w Django (np. request.session).
Konfiguracja backendu sesji (np. baza danych, pliki).
Przechowywanie informacji o użytkowniku
(np. koszyk zakupów, preferencje).
12. Local Storage
Synchronizacja Local Storage z serwerem za pomocą API.
Przechowywanie nieskomplikowanych danych w aplikacji SPA.
Tutaj, wchodzisz głębiej i optymalizujesz swoje aplikacje.
1. Zaawansowane operacje na Modelach:
Relacje między modelami: OneToOne, ForeignKey, ManyToMany
Custom QuerySet (Manager i QuerySet)
Anotacje i agregacje (annotate, aggregate)
Praca z transakcjami (np. atomic)
2. Widoki klasowe (Class-Based Views – CBV):
Generic CBV (ListView, DetailView, CreateView, itp.)
Modyfikacja CBV przez get_context_data lub form_valid
3. Django Middleware:
Czym jest middleware
Tworzenie własnego middleware
4. Autoryzacja i uwierzytelnianie:
System użytkowników (User, AbstractUser)
Logowanie i wylogowywanie (LoginView, LogoutView)
Grupy i uprawnienia, DjangoModelPermissions
Dekoratory (np. @login_required)
5. Obsługa plików:
Przechowywanie i przetwarzanie plików
(np. FileField, ImageField)
Konfiguracja MEDIA_URL i MEDIA_ROOT
6. Przetwarzanie żądań AJAX:
Współpraca Django z JavaScript (np. fetch, axios)
Zwracanie JSON z widoków (JsonResponse)
7. Testowanie aplikacji Django:
Testy jednostkowe (TestCase)
Testy widoków, formularzy i modeli
Używanie Client do symulacji żądań
8. Django Signals:
Jak działają sygnały (pre_save, post_save)
Tworzenie własnych sygnałów
9. Django Celery i zadania w tle:
Integracja z Celery do obsługi zadań w tle
(np. wysyłanie e-maili, przetwarzanie plików)
10. Internationalization (I18N):
Tłumaczenie aplikacji na różne języki
Locale Middleware
11. Django File Storage:
Integracja z zewnętrznymi systemami przechowywania plików
(np. AWS S3)
12. Django Cache Framework
Używanie cache na poziomie widoków i zapytań do bazy d.
Konfiguracja różnych backendów cache (Redis, Memcached).
Zastosowanie cache dla optymalizacji wydajności.
13. Session Storage
Synchr. danych sesji przeglądarki z Django Sessions.
Tymczasowe przechowywanie danych w SPA i ich
synchronizacja z serwerem.
14. Django File Storage
Konfiguracja backendów przechowywania plików
(np. lokalny, Amazon S3).
Używanie pól FileField, ImageField do obsługi plików.
Obsługa plików multimedialnych (MEDIA_URL, MEDIA_ROOT).
15. Service Workers (Cache Storage)
Wprowadzenie Service Workers do cache'owania plików
statycznych.
Podstawowa integracja Django z aplikacjami PWA.
16. Migracje - mniej oczywiste zagadnienia
Kiedy migracja per aplikacja
a kiedy warto uruchamiać migracje globalnie?
Ręczne edytowanie migracji
Zaawansowane operacje migracyjne:
- zmiany typu pola,
- łączenie migracji,
- zarządzanie zależnościami między aplikacjami
Zarządzanie migracjami w złożonych projektach
Debugowanie migracji
Odtwarzanie bazy danych
Te tematy są bardziej skomplikowane i przydają się
w dużych projektach, gdzie wydajność, bezpieczeństwo
i skalowalność są kluczowe.
1. Zaawansowane zarządzanie bazą danych:
Optymalizacja zapytań w ORM
Użycie surowych zapytań SQL (raw())
2. Django Rest Framework (DRF):
Tworzenie API w Django
Serializatory (Serializer, ModelSerializer)
Widoki API (APIView, ViewSet)
Autoryzacja w API (JWT, OAuth)
Paginacja, filtrowanie i sortowanie
3. Django Channels:
Obsługa WebSocketów
Tworzenie aplikacji w czasie rzeczywistym
(np. czaty, powiadomienia)
4. Architektura skalowalnych aplikacji:
Cache w Django (np. Redis, Memcached)
Podział aplikacji na moduły (np. mikroserwisy)
Load balancing i serwery aplikacyjne
(np. Gunicorn, uWSGI)
5. Asynchroniczność w Django:
Obsługa async/await w widokach
Integracja z Celery i Django Channels
6. Bezpieczeństwo w Django:
Cross-Site Request Forgery (CSRF)
Cross-Site Scripting (XSS)
SQL Injection i inne zagrożenia
Zabezpieczanie aplikacji
(np. SECURE_SSL_REDIRECT, SECURE_HSTS_SECONDS)
7. Zaawansowane narzędzia administracyjne:
Tworzenie niestandardowych paneli w Django Admin
Integracja admina z zewnętrznymi narzędziami
8. Zarządzanie wydajnością:
Optymalizacja ORM (np. select_related, prefetch_related)
Zewnętrzne narzędzia do analizy wydajności
(np. Django Debug Toolbar)
9. Integracja z zewnętrznymi API:
Pobieranie danych z REST/SOAP API
Integracja z narzędziami płatności (np. Stripe, PayPal)
10. Zaawansowane wzorce projektowe:
Stosowanie wzorców takich jak CQRS
(Command Query Responsibility Segregation)
czy DDD (Domain-Driven Design)
Tworzenie repozytoriów dla modeli
11. IndexedDB
Projektowanie aplikacji offline-first z użyciem IndexedDB
Synchronizacja danych między bazą przeglądarki
a Django backendem.
Mechanizmy synchronizacji offline/online
(np. WebSocket, REST API).
12. Zaawansowany Cache Storage
Optymalizacja
przechowywania danych aplikacji PWA w Cache Storage.
Tworzenie złożonych strategii cache'owania
(np. "cache first", "network first").
13. Custom File Storage
Implementacja własnych mechanizmów przechowywania plików.
Integracja z zewnętrznymi systemami przechowywania danych
(np. Google Cloud, Azure Blob Storage).
14. PWA (Progressive Web Apps)
Tworzenie pełnoprawnych aplikacji PWA z trybem offline.
Synchronizacja danych w różnych mechanizmach storage
(IndexedDB, Cache Storage).
Współpraca Django jako backendu
z aplikacjami frontendowymi.