Buforowanie widoku za pomocą cached
Zapamiętuj całe odpowiedzi na podstawie URL-a.
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. 🚀
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
- Konfiguracja Flask-Caching
- Buforowanie widoku za pomocą cached
- Zapamiętywanie wyników kosztownych funkcji
- Unieważnianie i wygaszanie wpisów pamięci podręcznej