Kontekst aplikacji a kontekst żądania
Poznaj oba konteksty i dowiedz się, co znajduje się w każdym z nich.
Kontekst aplikacji a kontekst żądania 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.
Dwa rodzaje kontekstu
Flask wykonuje kod wewnątrz kontekstu, czyli tymczasowej warstwy przechowującej dane potrzebne widokowi. Istnieją dwa rodzaje: kontekst aplikacji i kontekst żądania.
Kontekst aplikacji
Kontekst aplikacji wskazuje, która aplikacja jest obecnie aktywna. Istnieje zawsze, gdy Flask wykonuje pracę, nawet poza rzeczywistym żądaniem internetowym.
Kontekst żądania
Kontekst żądania obejmuje pojedyncze żądanie przychodzące. Przechowuje adres URL, nagłówki i dane formularza tylko dla tego jednego użytkownika.
Żądanie dodaje również kontekst aplikacji
Gdy nadejdzie żądanie, Flask dodaje kontekst żądania, a kontekst aplikacji jest automatycznie dodawany razem z nim. Dlatego wewnątrz widoku oba konteksty są zawsze aktywne.
Co znajduje się w kontekście aplikacji
Kontekst aplikacji udostępnia obiekty current_app i g. Służą one do obsługi konfiguracji, uchwytu bazy danych oraz innych współdzielonych danych związanych z żądaniem.
from flask import current_app
print(current_app.name)Co znajduje się w kontekście żądania
Kontekst żądania udostępnia obiekty request i session. Opisują one użytkownika: jego ścieżkę, ciąg zapytania, przesłany formularz i pliki cookie.
from flask import request
path = request.pathDlaczego je rozdzielać?
Rozdzielenie kontekstów oznacza, że praca na poziomie aplikacji, na przykład skrypt uruchamiany przy starcie, może używać current_app bez udawania, że istnieje fikcyjne żądanie internetowe.
Poza każdym kontekstem
Odwołanie do request bez aktywnego kontekstu powoduje błąd wykonania we Flasku. Proxy nie ma jeszcze żadnego rzeczywistego obiektu, na który mogłoby wskazywać.
Konteksty są przechowywane na stosie
Flask przechowuje konteksty na stosie. Każdy z nich jest odkładany na stos po rozpoczęciu pracy i zdejmowany po jej zakończeniu, dzięki czemu właściwe dane zawsze znajdują się na wierzchu.
Cykl życia kontekstu
Kontekst żądania istnieje tylko podczas tego jednego żądania. Po wysłaniu odpowiedzi Flask zdejmuje oba konteksty ze stosu i usuwa je.
Model mentalny
Można to ująć tak: kontekst aplikacji odpowiada na pytanie, która aplikacja działa, a kontekst żądania — który użytkownik ją wywołuje. W widoku oba istnieją jednocześnie.
Szybkie sprawdzenie
Rozdzielmy teraz te dwa konteksty.
Podsumowanie
Dwie warstwy, dwa zadania: kontekst aplikacji wskazuje, która aplikacja działa, a kontekst żądania — który użytkownik ją wywołuje. Żądanie dodaje oba, więc widoki zawsze mają dostęp do każdego z nich. 🎉
Ucz się Python dzięki korepetycjom AI — za darmo
Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.
- Kursy
- 30
- Lekcje
- 120
Często zadawane pytania
Czy lekcja „Kontekst aplikacji a kontekst żądania” jest bezpłatna?
Tak — pełny tekst „Kontekst aplikacji a kontekst żądania” 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 „Kontekst aplikacji a kontekst żądania”?
Poznaj oba konteksty i dowiedz się, co znajduje się w każdym z nich. Ć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 „Kontekst aplikacji a kontekst żądania”?
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
- Kontekst aplikacji a kontekst żądania
- current_app i obiekt g
- Lokalne kontekstu i bezpieczeństwo wątkowe
- Wypychanie kontekstu w skryptach i powłokach