Python: Flask¶
Polish¶
Wprowadzenie do Flask:
Instalacja Flask i środowiska uruchomieniowego
Wbudowany serwer HTTP (nasłuchiwanie lokalne oraz na wszystkich interfejsach)
IDE oraz narzędzia dla programistów
Protokół HTTP:
Request-Response
Metody protokołu (czasowniki HTTP)
Nagłówki żądań i odpowiedzi
Statusy
Mimetype
Uwierzytelnianie
Pobieranie danych z serwera
Przesyłanie danych do serwera
Debugging
HTTPS
Uwierzytelnianie
Type annotations:
Typy
Sekwencje
Mapy
Funkcje
Klasy
Projekty Flask:
Konwencja nazewnicza
Podział projektu na wiele plików
Mechanizm importów
Reużywalność
Wersjonowanie API
Widoki:
URL Routing
Obsługa zapytań GET, POST, PUT, DELETE
Parametry w URL, parametry żądania
Nagłówki zapytań i odpowiedzi
Schematy wejściowe i wyjściowe
Kody statusu, tagi
System szablonów Jinja:
Znaczniki
Filtry
Własne funkcje
Zaawansowane użycie
Modele bazy danych:
Modele w SQLAlchemy
Typy pól
Relacje między modelami
Parametry pól, unikalność, wartości null, indeks w bazie, wymagalność pól
Migracje i ich obsługa
Schematy dla modeli ORM
Tworzenie prostych zapytań przy pomocy ORM
Tworzenie obiektów, zapis do bazy, aktualizacja
Pobieranie obiektów, filtrowanie, łączenie zapytań, sortowanie
Podglądanie zapytań do bazy danych
Middleware:
Mechanizm przetwarzania żądań
Tworzenie własnych middleware
Autoryzacja i uwierzytelnianie:
System uwierzytelniania JSON Web Token (JWT)
Logowanie
Mechanizm sesji
Definiowanie uprawnień dla użytkownika i grup
Ograniczanie dostępu do widoków
Websockets:
Omówienie technologii
Prosta implementacja
Testowanie API:
Debugging
Fixtures
CI/CD aplikacji Flask
Aplikacja Flask w środowisku produkcyjnym:
nginx+uWSGI vs nginx+Gunicorn
Docker i Kubernetes
Architektura mikroserwisowa:
Architektura mikroserwisowa
Skalowalność
BFF - Backend for Frontend
API Gateway
Load Balancing