Rozdział 22 · Tworzenie stron internetowych z Python

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.

KryteriaFlaskDjangoFastAPI
CelOgólnego przeznaczenia, często strony z HTML- stronamiDo ogólnego użytku, aplikacje wokół bazy danychPrzede wszystkim, HTTP API
TrasowanieWbudowaneWbudowaneWbudowane
Szablony HTMLJinjaWbudowany silnik szablonówTo nie jest główne zadanie — ramy skupiają się na API
ORMBrak własności – Poprzez ORM osoby trzeciej (Rozdział 22.26)Tak, wbudowanyNie posiada własnego — przez zewnętrzny ORM
MigracjeJeśli nie masz własnego — przez narzędzie zewnętrzneTak, wbudowane (makemigrations/migrate)Jeśli nie masz własnego — przez narzędzie zewnętrzne
Interfejs administracyjnyNie mam własnegoTak, wbudowana automatykaNie mam własnego
UwierzytelnianieNie jest własny — przez rozszerzeniaTak, wbudowany system użytkownikaJeśli nie masz własnej — przez biblioteki firm trzecich
Weryfikacja danychRęcznie lub przez rozszerzeniaPoprzez formularze i serializatory Django/DRFWbudowane, oparte na wskazówkach typów Python
OpenAPINie mam własnegoW rdzeniu nie ma własnegoTak, wbudowane, automatyczne
WSGI / ASGI (rozdział 22.19)WSGI, z ograniczonym wsparciem dla async- opiekunówObsługuje zarówno WSGI, jak i ASGI tryby wdrażaniaASGI początkowo
Typowe projektyMałe i średnie strony, proste APIDuże aplikacje z bazą danych i panelem administracyjnymHTTP API, usługi z danymi typowymi
Django REST Framework — oddzielny projekt, a nie część jądra Django
Django od razu po wyjęciu z pudełka może dać HTML- strony i ma panel administracyjny, ale pełnoprawny zestaw narzędzi dla REST API to osobny pakiet, Django REST Framework (DRF) instalujesz i podłączasz Django.
Punkt wyjścia do wyboru
Potrzebuję strony internetowej z formularzami, szablonami, bez gotowego panelu administracyjnego
Flask
Potrzebuję systemu biznesowego z bazą danych i prostym panelem administracyjnym
Django
Potrzebujesz API- usługi z automatyczną dokumentacją
FastAPI
Wymaga niskiego poziomu kontroli nad aplikacją ASGI-
Starlette
Projekty rzeczywiste często łączą narzędzia — to są punkty wyjścia, a nie sztywne zasady

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.

Praktyka: Wybór ram według zadania
interaktywny laptop bezpośrednio w przeglądarce – Python 3.14 przez Pyodide, bez instalacji
Otwórz praktykę →