Flask Academy · Lekcja

Buforowanie widoku za pomocą cached

Zapamiętuj całe odpowiedzi na podstawie URL-a.

Lekcja 2 z 413 kroki

Buforowanie widoku za pomocą cached to bezpłatna lekcja Flask Academy na CoddyKit. To lekcja 2 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.

Buforowanie całych odpowiedzi

Generowanie niektórych stron wymaga sporo pracy. Dekorator cached przechowuje całą odpowiedź, dzięki czemu kolejni odwiedzający otrzymują jej kopię natychmiast.

Stosowanie dekoratora

Dodaj @cache.cached() bezpośrednio nad funkcją widoku. Pierwsze żądanie ją wykona, a kolejne odtworzą zapisany wynik.

@app.route("/report")
@cache.cached()
def report():
    return build_report()

Kolejność dekoratorów

Kolejność ma znaczenie. Umieść @app.route na górze, a @cache.cached pod nim, aby najpierw zadziałało routowanie, a dopiero potem buforowanie.

Ustawianie limitu czasu dla widoku

Ustawienie globalne można zmienić dla konkretnego widoku. Argument timeout określa, przez ile sekund ta konkretna odpowiedź pozostaje aktualna.

@cache.cached(timeout=60)
def report():
    ...

Buforowanie według ścieżki żądania

Domyślnie kluczem cache jest request path. Dlatego /report i /report/extra są przechowywane jako osobne, niezależne wpisy.

Parametry zapytania są pomijane

Uważaj: domyślny klucz pomija parametry zapytania. Dlatego /list?page=2 i /list?page=3 współdzieliłyby jeden wpis w cache.

Uwzględnianie pełnego adresu URL

Aby rozdzielać wpisy według parametrów zapytania, ustaw query_string=True. Wtedy każdy unikatowy adres URL, wraz z parametrami, otrzyma własną buforowaną odpowiedź.

@cache.cached(query_string=True)
def listing():
    ...

Niestandardowe klucze cache

Potrzebujesz pełnej kontroli? Przekaż funkcję make_cache_key, która samodzielnie utworzy klucz, na przykład uwzględniając bieżącego użytkownika.

@cache.cached(make_cache_key=my_key)

Buforowanie tylko bezpiecznych metod

Buforuj żądania GET, ale nigdy POST. Buforowanie operacji zapisu odtworzyłoby starą treść i pominęło skutki uboczne, których oczekują użytkownicy.

Pomijanie cache w razie potrzeby

Zwróć unless, gdy warunek jest spełniony, aby widok za każdym razem wykonał się od nowa. Przydaje się to na przykład do pomijania cache dla zalogowanych użytkowników.

@cache.cached(unless=lambda: g.user)

Pierwsze i kolejne żądania

Pierwsze żądanie jest cache miss i wykonuje całą pracę. Każde kolejne żądanie w ramach limitu czasu jest szybkim trafieniem do cache.

Szybkie sprawdzenie

Strona listy używa ?page=, ale każda strona wyświetla tę samą buforowaną treść.

Podsumowanie: buforowanie widoków

Nauczyłeś się opakowywać widoki za pomocą @cache.cached, dostosowywać limit czasu, tworzyć klucz na podstawie pełnego adresu URL i pomijać buforowanie operacji zapisu. 🚀

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 „Buforowanie widoku za pomocą cached” jest bezpłatna?

Tak — pełny tekst „Buforowanie widoku za pomocą cached” 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 „Buforowanie widoku za pomocą cached”?

Zapamiętuj całe odpowiedzi na podstawie URL-a. Ć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 2 z 4.

Ile czasu zajmuje lekcja „Buforowanie widoku za pomocą cached”?

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. Konfiguracja Flask-Caching
  2. Buforowanie widoku za pomocą cached
  3. Zapamiętywanie wyników kosztownych funkcji
  4. Unieważnianie i wygaszanie wpisów pamięci podręcznej
← Powrót do Flask Academy