Porównanie Flask, Django i FastAPI
Flask, Django i FastAPI rozwiązują różne klasy problemów i oferują różne wbudowane funkcje.
Rozdział 22.17 przedstawiała ogólną mapę. Teraz porównajmy trzy najbardziej znaczące ramy – Flask, Django i FastAPI opierają się na konkretnych zadaniach, a nie na ogólnych wrażeniach.
| Kryteria | Flask | Django | FastAPI |
|---|---|---|---|
| Cel | Ogólnego przeznaczenia, często strony z HTML- stronami | Do ogólnego użytku, aplikacje wokół bazy danych | Przede wszystkim, HTTP API |
| Trasowanie | Wbudowane | Wbudowane | Wbudowane |
| Szablony HTML | Jinja | Wbudowany silnik szablonów | To nie jest główne zadanie — ramy skupiają się na API |
| ORM | Brak własności – Poprzez ORM osoby trzeciej (Rozdział 22.26) | Tak, wbudowany | Nie posiada własnego — przez zewnętrzny ORM |
| Migracje | Jeśli nie masz własnego — przez narzędzie zewnętrzne | Tak, wbudowane (makemigrations/migrate) | Jeśli nie masz własnego — przez narzędzie zewnętrzne |
| Interfejs administracyjny | Nie mam własnego | Tak, wbudowana automatyka | Nie mam własnego |
| Uwierzytelnianie | Nie jest własny — przez rozszerzenia | Tak, wbudowany system użytkownika | Jeśli nie masz własnej — przez biblioteki firm trzecich |
| Weryfikacja danych | Ręcznie lub przez rozszerzenia | Poprzez formularze i serializatory Django/DRF | Wbudowane, oparte na wskazówkach typów Python |
| OpenAPI | Nie mam własnego | W rdzeniu nie ma własnego | Tak, wbudowane, automatyczne |
| WSGI / ASGI (rozdział 22.19) | WSGI, z ograniczonym wsparciem dla async- opiekunów | Obsługuje zarówno WSGI, jak i ASGI tryby wdrażania | ASGI początkowo |
| Typowe projekty | Małe i średnie strony, proste API | Duże aplikacje z bazą danych i panelem administracyjnym | HTTP API, usługi z danymi typowymi |
Dlaczego Flask wybrano do projektu edukacyjnego
W tym rozdziale pierwszy projekt serwera jest zbudowany na Flask. Flask zapewnia podstawy Narzędzia aplikacji webowych – routowanie, przetwarzanie żądań/odpowiedzi oraz praca z szablony — bez dużego zestawu obowiązkowych podsystemów. Dlatego w małej szkole edukacyjnej Dla projektu wygodne jest rozpatrywanie każdego z tych mechanizmów kolejno.
Django oferuje bardziej gotowe komponenty, takie jak ORM, migracje, uwierzytelnianie oraz interfejs administracyjny. FastAPI koncentruje się głównie na tworzeniu HTTP API oraz Uważnie wykorzystuje adnotacje typu Python.
Flask wybrane tutaj jako odpowiednie narzędzie dla pierwszej aplikacji do nauki internetowej. To To nie znaczy, że Flask jest najlepszym rozwiązaniem dla każdego projektu.