Paweł Kot

Python Django – Sesje

python--django

Krótki artykuł na temat wbudowanego systemu sesji we frameworku Python Django. Opis oraz możliwości wykorzystania go w naszej aplikacji webowej.

Samo korzystanie sesji w naszej aplikacji jest bardzo proste i nie wymaga godzin konfiguracji. To co musimy zrobić, to upewnić się czy:

  • w settings.py w MIDDLEWARE_CLASSES mamy ‘django.contrib.sessions.middleware.SessionMiddleware‘ (tak naprawdę to nie musisz się upewniać, ponieważ domyślnie jest to wdrożone)
  • w settings.py w INSTALLED_APPS mamy ‘django.contrib.sessions

Gdy mamy aktywny middleware sesji to każdy request (HttpRequest) będzie miał atrybut session, z którego możemy czytać jak i dodawać wartości.

Przykład

sesja = request.session['klucz_sesji'] = 'wartosc_sesji'
print(sesja)

Po wykonaniu tego kodu w przeglądarce w terminalu z uruchomionym serwerem django zobaczymy wypisaną ‘wartosc_sesji’.

Konfguracja

Sesję w django można konfigurować jak sobie tylko chcesz, ale najlepszym miejscem do tego jest settings.py:

  • SESSION_COOKIE_AGE – ważność sesji cookie w sekundach – domyślnie 2 tygodnie
  • SESSION_COOKIE_DOMAIN – domena ciasteczka. Ustawiając domenę ciasteczka na ‘staffmedia.pl’ mam dostęp do cookie w obrębie całej domeny i subdomen.
  • SESSION_COOKIE_NAME – nazwa cookie dla sesji – domyślnie sessionid.
  • SESSION_COOKIE_SECURE – sposób przsyłania cookie – jeśli True to leci po HTTPS
  • SESSION_EXPIRE_AT_BROWSER_CLOSE – gdy ustawimy na True to każde zamknięcie przeglądarki ubija sesję

I to tyle, warto się pobawić i sprawdzić co potrafi ten mechanizm.