Odczyt i zapis request.session
Zapisywanie i pobieranie wartości, na przykład zawartości koszyka
Odczyt i zapis request.session to bezpłatna lekcja Django 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 Django Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Django Academy zawiera 4 lekcji w sumie.
Sesja jako słownik
Potraktuj request.session jak słownik przypisany do jednego odwiedzającego. Odczytujesz i zapisujesz klucze dokładnie tak jak w każdym słowniku Pythona.
Zapisywanie wartości
Aby coś zapamiętać, po prostu przypisz wartość do klucza. Tutaj zapisujemy listę cart, aby odwiedzający zachował swoje produkty między stronami.
def add_to_cart(request):
request.session['cart'] = [1, 2, 3]
return redirect('cart')Odczytywanie wartości
Odczytaj klucz tak jak ze zwykłego słownika. Użycie get z wartością domyślną zapobiega błędowi, gdy klucz nie został jeszcze ustawiony.
cart = request.session.get('cart', [])Aktualizowanie zapisanych danych
Aby powiększyć koszyk, odczytaj go, zmień obiekt Pythona, a następnie przypisz go ponownie, aby Django zauważyło zmianę i ją zapisało.
cart = request.session.get('cart', [])
cart.append(7)
request.session['cart'] = cartOznaczanie sesji jako zmodyfikowanej
Gdy modyfikujesz zagnieżdżony obiekt bezpośrednio, ustaw session.modified na True, aby Django wiedziało, że musi zachować tę zmianę.
request.session['cart'].append(7)
request.session.modified = TrueUsuwanie klucza
Usuń pojedynczą wartość za pomocą del, tak jak w zwykłym słowniku, aby usunąć jeden element stanu sesji.
del request.session['cart']Sprawdzanie obecności klucza
Użyj operatora in, aby sprawdzić, czy wartość istnieje, zanim ją odczytasz. Dzięki temu logika widoku pozostaje przejrzysta.
if 'cart' in request.session:
show_cart()Co można przechowywać
Wartości sesji muszą być domyślnie serializowalne do formatu JSON. Listy, słowniki, ciągi znaków i liczby są dozwolone, ale instancje modeli już nie.
Usuwanie wszystkich danych
Aby usunąć wszystkie dane sesji odwiedzającego, wywołaj flush. Usuwa ono dane i zmienia klucz sesji, co jest przydatne podczas wylogowywania.
request.session.flush()Ustawianie czasu wygaśnięcia dla sesji
Możesz zmienić globalny limit czasu dla jednego odwiedzającego za pomocą set_expiry. Przekazanie zera kończy sesję po zamknięciu przeglądarki.
request.session.set_expiry(0)Zapisywanie odbywa się automatycznie
Rzadko trzeba samodzielnie wywoływać save. Middleware zapisuje sesję pod koniec każdego żądania, jeśli została zmieniona.
Szybkie sprawdzenie
Zmieniono bezpośrednio listę już przechowywaną w sesji. Co należy zrobić?
Podsumowanie
Używano request.session jak słownika: zapisywano, odczytywano za pomocą get, usuwano, czyszczono za pomocą flush i ustawiano czas wygaśnięcia. Pamiętaj, aby oznaczać bezpośrednie modyfikacje jako zmiany. Następny temat to framework komunikatów. 💬
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 „Odczyt i zapis request.session” jest bezpłatna?
Tak — pełny tekst „Odczyt i zapis request.session” 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 Django Academy, przejdź na CoddyKit PRO. Kurs Django Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Odczyt i zapis request.session”?
Zapisywanie i pobieranie wartości, na przykład zawartości koszyka Ćwiczysz Django 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ąć Django Academy?
Nie wymagamy żadnego doświadczenia. Django 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 „Odczyt i zapis request.session”?
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 Django Academy?
Tak. Każda lekcja Django 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
- The Session Framework
- Odczyt i zapis request.session
- The Messages Framework
- Cookies a sesje