Rozdział 22 · Tworzenie stron internetowych z Python

Frameworki internetowe dla Python: Flask, Django, FastAPI i innych

Framework webowy to zestaw gotowych narzędzi do tworzenia aplikacji webowych. Flask, Django, FastAPI i Starlette inny zestaw wbudowanych funkcji.

Web Framework to zestaw bibliotek, reguł i gotowych komponentów, które uproszczenie tworzenia aplikacji webowych: routing, przetwarzanie HTTP- żądań i odpowiedzi, z szablonami, walidacją danych, dostępem do baz danych i innymi popularnymi zadaniami. Flask — nie jedyny framework webowy dla Python; pozostałe mają inny zestaw wbudowanych funkcji.

Flask
Flask — lekki WSGI- framework do tworzenia aplikacji webowych na Python (rozdział 22.19). Jego podstawowe jądro jest stosunkowo niewielkie, a dodatkowe funkcje zazwyczaj są dołączane poprzez biblioteki i rozszerzenia.
Django
Django jest pełnowymiarowym frameworkiem webowym na Python. Zawiera ORM, migrację, routing, szablony, narzędzia uwierzytelniania oraz interfejs administracyjny.
FastAPI
FastAPI to internetowy framework do tworzenia HTTP API na Python. Wykorzystuje Python adnotacje typu do opisu i walidacji danych oraz może automatycznie generować API dokumentację na podstawie OpenAPI.
Starlette
Starlette to lekki framework ASGI- i zestaw narzędzi do tworzenia asynchronicznych usług sieciowych w Python. FastAPI wykorzystuje Starlette jako jeden z kluczowych komponentów.

Każdy framework zajmuje się częścią typowej pracy: routingiem (kto jest odpowiedzialny za Jaki jest adres – sekcja 22.11), przetwarzanie żądań i odpowiedzi, czasem – szablony, weryfikacja Dane wejściowe, praca z bazą danych, autoryzacja, narzędzia testowe. Różnice między ramami — w tym, że dokładnie ile podejmuje i jak łatwo się podejmuje Wymień którąkolwiek z tych części na swoją.

Inne frameworki internetowe dla Python

Oprócz Flask, Django, FastAPI Starlette Python również korzysta z tworzenia stron internetowych innych projektów. Żaden z nich nie jest szczegółowo omawiany w tym rozdziale – są wspomniane, Abyś rozpoznał nazwiska, gdy spotkasz je w prawdziwych projektach.

RamyGłówny obszarInterfejs/modelTypowe zastosowanie
LitestarWydajność i silne pisanieASGIAPI-usługi, gdzie typy i walidacja są ważne
QuartAPI, zgodny z FlaskASGIPortowanie aplikacji Flask-aplikacji na model asynchroniczny
PyramidElastyczna architektura bez narzuconej strukturyWSGIProjekty, które rozwijają się z małego skryptu do dużej aplikacji
TornadoAsynchroniczne I/O, długotrwałe połączeniaWłasnościowy silnik asynchroniczny + ASGI/WSGI- kompatybilnyWebSockety, długotrwałe połączenia
BottleMinimalizm, jeden plikWSGIBardzo małe usługi i prototypy
Nie wybieraj systemu opartego na wynikach popularności
Benchmarki wydajności i listy «najszybszych frameworków» w dużej mierze zależą od tego, co dokładnie jest mierzone, i szybko się dezaktualizują. Rozsądniej jest pytać: co dokładnie powinno robić moje aplikacja, jakie doświadczenie ma już zespół, co jest tutaj już używane. Bardziej merytoryczne porównanie pod kątem konkretnych zadań, a nie po abstrakcyjnym «co jest lepsze», — w rozdziale 22.18.

Oficjalna dokumentacja: Flask, Django, FastAPI, Starlette.