0Pricing
Flask Academy · Lekcja

Ograniczanie liczby żądań za pomocą Flask-Limiter

Stosuj limity zapytań dla tras i całej aplikacji.

Ograniczanie liczby żądań za pomocą Flask-Limiter to bezpłatna lekcja Flask Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Flask Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Flask Academy zawiera 4 lekcji w sumie.

Po co w ogóle ograniczać ruch

Bez ograniczeń jeden klient może zalać API żądaniami i pozbawić zasobów wszystkich pozostałych. Ograniczanie częstotliwości żądań określa, jak często wywołujący może korzystać z tras.

Poznaj Flask-Limiter

Najczęściej używanym narzędziem jest rozszerzenie Flask-Limiter. Monitoruje ono przychodzące żądania i odrzuca wywołujących, którzy przekroczą przyznany limit.

Instalacja

Dodaje się je za pomocą pip, tak jak każde inne rozszerzenie. Jeden pakiet udostępnia dekoratory i konfigurację do ograniczania ruchu.

pip install Flask-Limiter

Identyfikowanie wywołującego

Limiter potrzebuje klucza, według którego będzie zliczać żądania. Zwykle używa się adresu IP klienta za pośrednictwem wbudowanej funkcji pomocniczej get_remote_address.

from flask_limiter.util import get_remote_address

Tworzenie limitera

Tworzysz obiekt Limiter i wiążesz go z aplikacją. Funkcja klucza określa, komu przypisać każde żądanie.

limiter = Limiter(get_remote_address, app=app)

Ustawianie domyślnego limitu

Lista default_limits nakłada jeden limit na wszystkie trasy jednocześnie. To zabezpieczenie dla całej aplikacji.

limiter = Limiter(get_remote_address, app=app,
    default_limits=["200 per day", "50 per hour"])

Limity dla poszczególnych tras

Za pomocą dekoratora @limiter.limit możesz zaostrzyć limit pojedynczego endpointu. Ta trasa otrzyma własną, bardziej restrykcyjną regułę.

@app.route("/login")
@limiter.limit("5 per minute")
def login():
    ...

Odczytywanie zapisu limitu

Zapis przypomina zwykłe zdanie w języku naturalnym. 5 per minute oznacza, że wywołujący może odwołać się do tej trasy pięć razy w ciągu minuty.

"5 per minute"

Znaczenie kodu 429

Po przekroczeniu limitu Flask-Limiter zwraca 429 Too Many Requests. To uprzejmy sposób powiedzenia: proszę zwolnić.

Wyłączanie limitu dla trasy

Niektóre endpointy, na przykład endpoint sprawdzający stan aplikacji, nigdy nie powinny podlegać ograniczeniom. Oznacz je za pomocą @limiter.exempt, aby pominąć wszystkie limity.

@app.route("/health")
@limiter.exempt
def health():
    return "ok"

Używanie współdzielonego backendu

W produkcji działa wiele procesów aplikacji, dlatego liczniki muszą być przechowywane we współdzielonym storage_uri, na przykład w Redisie, a nie w pamięci.

Limiter(get_remote_address, app=app,
    storage_uri="redis://localhost:6379")

Szybkie sprawdzenie

Wybierz kod statusu otrzymywany przez klienta objętego ograniczeniem.

Podsumowanie

Dodano Flask-Limiter, oparto limity na adresie IP, ustawiono limity domyślne i dla poszczególnych tras, wyłączono ograniczenia dla endpointów sprawdzających stan aplikacji oraz poznano odpowiedź 429. Świetna praca!

Często zadawane pytania

Czy lekcja „Ograniczanie liczby żądań za pomocą Flask-Limiter” jest bezpłatna?

Tak — pełny tekst „Ograniczanie liczby żądań za pomocą Flask-Limiter” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Flask Academy, przejdź na CoddyKit PRO. Kurs Flask Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Ograniczanie liczby żądań za pomocą Flask-Limiter”?

Stosuj limity zapytań dla tras i całej aplikacji. Ćwiczysz Flask Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Flask Academy?

Nie wymagamy żadnego doświadczenia. Flask Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.

Ile czasu zajmuje lekcja „Ograniczanie liczby żądań za pomocą Flask-Limiter”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Flask Academy?

Tak. Każda lekcja Flask Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Ograniczanie liczby żądań za pomocą Flask-Limiter
  2. Konfiguracja CORS dla klientów przeglądarkowych
  3. Nagłówki bezpieczeństwa i HTTPS
  4. Walidacja danych wejściowych przeciwko wstrzyknięciom
← Powrót do Flask Academy