1.1. About Program
Python: Django
1.1.1. Polish
Wprowadzenie do Django:
Instalacja Django
Plik konfiguracyjny
manage.py i jego opcje
Wbudowany serwer HTTP (nasłuchiwanie lokalne oraz na wszystkich interfejsach)
IDE oraz narzędzia dla programistów
Przykłady serwisów wykorzystujących Django
Projekty:
Pojęcie projektu Django
Tworzenie nowego projektu
Aplikacje:
Pojęcie projektu i aplikacji Django
Tworzenie nowej aplikacji
Struktura aplikacji
Reużywalność
Modele:
Modele w Django
Typy pól
Relacje między modelami
Parametry pól, unikalność, wartości null, indeks w bazie, wymagalność pól
Ograniczenie wyboru
Auto uzupełnianie dat
Walidatory
Migracje i ich obsługa
Dump danych i przywracanie z backupu
Klasa Meta
Panel administracyjny:
Tworzenie superusera
Konfiguracja panelu administracyjnego
Wyszukiwanie, filtrowanie, autocomplete
Tworzenie własnych filtrów
Rejestracja modeli
Fieldset, Radio Buttony, Checkboxy
Widgety
Annotated Fields
StackedInline i TabularInline
Wyświetlanie własnych pól za pomocą list_display
Ograniczanie listy wyników (get_queryset)
Miękkie kasowanie danych (bez usuwania z bazy)
Paginacja
Wstrzykiwanie własnych skryptów Java Script oraz styli CSS
Modyfikacja wyglądu panelu administracyjnego przez nadpisywanie template’ów
ORM:
Tworzenie prostych zapytań przy pomocy ORM
Tworzenie obiektów, zapis do bazy, aktualizacja
Pobieranie obiektów, filtrowanie, łączenie zapytań, sortowanie
Zaawansowane zapytania: obiekty Q, wyrażenia F, grupowanie i agregacje
Wiele baz danych na raz
Inżynieria wsteczna bazy (inspectdb)
Podglądanie zapytań do bazy danych
Managery dla modeli
Routing URL:
Wprowadzenie do wyrażeń regularnych
Mechanizmy rozwiązywania URL przez Django
Łączenie widoków z odpowiednimi URL
Rozwiązywanie wsteczne URL
Przekierowania
Wersjonowanie
Widoki:
Statusy HTTP, nagłówki zapytań i odpowiedzi
Widoki klasowe i funkcyjne
Widoki generyczne
Widoki asynchroniczne
Obsługa błędów
Obsługa różnych typów zapytań (JSON, HTTP, CSV)
Odczytywanie danych z zapytania
Dekoratory ograniczające dostęp
Szablony:
Składnia szablonów: Zmienne, Znaczniki, Filtry
Obsługa URL
Hierarcha, dziedziczenie i separacja powtarzalnych części kodu
Templatetag
Pliki statyczne: obrazki, css, java script
Formularze:
Klasa Form: typy, definiowanie pól formularza
Wyświetlanie formularzy
Walidacja formularza
Obsługa błędów
Tworzenie formularzy bezpośrednio z modelu
CSRF
Middleware:
Mechanizm przetwarzania żądań
Tworzenie własnych middleware
i18n, l10n:
Obsługa różnych formatów dat
Praca ze strefami czasowymi
Tłumaczenie szablonów i nazw pól (ugettext_lazy)
Obsługa różnych formatów numerycznych
Tłumaczenie plików Java Script
Autoryzacja i uwierzytelnianie w aplikacji Django:
System uwierzytelniania Django (django.contrib.auth)
Logowanie
Mechanizm sesji
Definiowanie uprawnień dla użytkownika i grup
Ograniczanie dostępu do widoków
API:
Tworzenie własnych endpointów
Obsługa zapytań POST, GET, PUT, PATCH, HEAD, OPTIONS
Wersjonowanie API
Django REST API
Websockets
Generowanie dokumentacji do API
Django Extensions Graph
CSRF oraz CORS
Custom Fields:
Tworzenie własnych pól
Django i skrypty:
Tworzenie skryptów wykorzystujących modele i ORM Django
Tworzenie własnych Management Commands
Testowanie aplikacji Django:
Wprowadzenie do modułu django.test
Klasa TestCase i asercje specyficzne dla Django
Klient Testowy
Klasa Response
Fixtures
Django Debug Toolbar
CI/CD aplikacji Django
Aplikacja Django w środowisku produkcyjnym:
Nginx, uWSGI, async WSGI
Serwer Gunicorn
Serwowanie plików statycznych i korzystanie z CDN np. AWS S3
Docker i Kubernetes
Cache
1.1.2. English
Introduction to Django:
Installation
Configuration and settings file
manage.py and built-in management commands
Built-in HTTP server (listening on localhost on all interfaces)
Integrated Development Environment (IDE) debugging tools
Real-life services and platforms using Django
Projects:
Concept of Django projects
Creating new project
Directory structure
Apps:
Concept of Django app
Creating new app
Directory structure
Reusability
Models:
Concept of Django models
Field types
Model relations
Field parameters: unique, null, index, required, limit choices to
Date and time autocompletion on create and modify
Validators
Migrations creation and application
Database dump and restore
Meta class and model configuration
Administration panel:
Creating superusers
Model registration
Admin panel configuration
Searching, filtering, autocomplete
Custom filters
Fieldset, Radio Buttons, Checkboxes
Widgets
Annotated Fields
StackedInline and TabularInline
Custom fields and function results in list_display
Limiting admin panel query-sets (get_queryset)
Data soft-delete (deletion without removing from database)
Pagination
Injecting JavaScript and CSS styles
Admin panel customization by overriding templates
Object-Relational Mapper (ORM):
Creating simple queries using Django ORM
Creating objects, database saves and updates
Querying objects, filtering, joining and sorting
Advanced queries: Q objects, F expressions, grouping and aggregations
Multiple databases and DB routing
Database reverse engineering (inspectdb)
Database queries debugging and profiling
Model Managers
URL Routing:
Introduction to regular expressions
Django URL resolve mechanism
URL-Views mapping
Reverse URL resolution
Redirects
API Versioning
Views:
HTTP statuses, response and request headers
Class and function based views
Generic views
Asynchronous views
Error handling
Handling JSON, HTTP, CSV responses
Request data access
Permission model and decorators limiting access
Templates:
Template Syntax: variables, tags, filters
URL handling
Template hierarchy, inheritance and reusability
Templatetags
Static files: images, css, javascript
Forms:
Form class: types, defining form fields
Displaying forms
Form validation
Error handling
Model-based forms
CSRF
Middleware:
Request-response processing injection mechanisms
Creating custom middleware
i18n, l10n:
Date formatting
Timezones
Text translation (gettext_lazy)
Numeric values internationalization
JavaScript files internationalization
Authorization and authentication:
Django auth system (django.contrib.auth)
Logging
Sessions mechanism
Permission systems, apps, groups, users
Limiting access to views
API:
Endpoint set-up
Handling requests: POST, GET, PUT, PATCH, HEAD, OPTIONS
API versioning
Django REST API
Websockets
API documentation generation
Django Extensions Graph
CSRF and CORS
Custom Model Fields:
Creating custom model fields
Serialization problems
Django management commands:
Custom Python scripts using Django framework
Custom Management Commands
Testing:
Introduction to django.test module
TestCase class and Django specific assertions
Test Client
Response class
Fixtures
Django Debug Toolbar
CI/CD
Django in production environment:
Nginx configuration, SSL certificates, proxy_pass
Gunicorn, uWSGI, async WSGI
CDN staticfiles serving using AWS S3
Docker and Kubernetes deployment
Caching mechanism
Session caching