Django Academy · Lekcja

Odczyt i zapis request.session

Zapisywanie i pobieranie wartości, na przykład zawartości koszyka

Lekcja 2 z 413 kroki

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'] = cart

Oznaczanie 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 = True

Usuwanie 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. 💬

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 „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

  1. The Session Framework
  2. Odczyt i zapis request.session
  3. The Messages Framework
  4. Cookies a sesje
← Powrót do Django Academy