W tej książce przejdziesz drogę od poznawania podstawowych zasad do praktycznej realizacji pełnoprawnych aplikacji serwerowych w języku Python: od niskopoziomowych gniazd i protokołów po architekturę i uruchamianie na produkcji. Książka wyróżnia się tym, że nie podaje jednego «właściwego» podejścia, lecz porównuje trzy dojrzałe staki — Flask, Django i FastAPI — na rzeczywistych projektach, pokazując, gdzie potrzebna jest prostota, gdzie wymagana jest kompletność od razu, a gdzie krytyczna jest szybkość i asynchroniczność.
Struktura książki jest logiczna: od podstaw programowania serwerowego (architektura klient-serwer, protokoły przesyłania danych HTTP, HTTPS i WebSocket, niskopoziomowa praca z gniazdami w Pythonie) do tworzenia kilku rzeczywistych projektów, w tym systemu CRM w Django, bota telegramowego z pełnoprawną logiką serwerową, REST API dla aplikacji mobilnej oraz interaktywnego czatu z WebSocket.
Poznamy podstawowe aspekty pracy z bazami danych w aplikacjach serwerowych: wybór typu przechowywania w zależności od profilu obciążenia i struktury danych; techniki pracy z trzema popularnymi ORM; zrozumiały proces wprowadzania zmian w schemacie bez przestojów; gotowe szablony połączeń z PostgreSQL/MySQL/SQLite/MongoDB i wiele innych.
Omówimy kluczowe zasady skalowania i optymalizacji aplikacji serwerowych: nauczysz się używać serwerów równoważących z Nginx i Gunicorn, stosować skuteczne strategie cachowania z Redis i Memcached, wdrażać zadania w tle z Celery i RabbitMQ, a także uruchamiać kontenery za pomocą Dockera i Kubernetes. Szczególną uwagę zwrócimy na kwestie bezpieczeństwa i różne metody ochrony danych i aplikacji: używanie TLS/SSL do szyfrowania połączeń, wdrożenie tokenów JWT i OAuth 2.0 do uwierzytelniania użytkowników, ochrona przed najczęściej występującymi atakami (iniekcje SQL, skrypty między witrynami (XSS) i fałszywe żądania między witrynami (CSRF)).
Również rozważymy nowoczesne podejścia do wdrażania aplikacji, badając konfigurację infrastruktury serwerowej na AWS, Heroku, DigitalOcean, a także konfigurację serwera WWW Nginx i menedżera procesów serwerowych Gunicorn dla produkcji.