Flask Academy · Lekcja

Kontekst aplikacji a kontekst żądania

Poznaj oba konteksty i dowiedz się, co znajduje się w każdym z nich.

Lekcja 1 z 413 kroki

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.path

Dlaczego 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. 🎉

Bezpłatny start

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

  1. Kontekst aplikacji a kontekst żądania
  2. current_app i obiekt g
  3. Lokalne kontekstu i bezpieczeństwo wątkowe
  4. Wypychanie kontekstu w skryptach i powłokach
← Powrót do Flask Academy