= Sedenia = Niekedy si medzi dvoma zobrazeniami stránky potrebujeme zapamätať, aké údaje užívateľ zadal predtým. Typcký príklad môže byť nákupný košík v internetovom obchode. To znamená, že potrebujeme udržiavať medzi jednotlivými HTTP požiadavkami rovnaký kontext. Mohli by sme to spraviť tak, že by sme si pamätali IP adresy. To však nie je dosť spoľahlivé, pretože viacero browserov môže v danom okamihu zdieľať tú istú IP adresu (NAT, proxy a podobne). Preto dáva HTTP protokol možnosť serveru uložiť si u klienta malé množstvo krátkych informácií. Tento mechanizmus sa nazýva cookies. Obvykle sa ako cookie u klienta ukladá krátky kľúč, pod ktorým je na serveri v nejakej databáze uložený celý kontext. Django umožňuje pracovať s cookies priamo, alebo pomocou sessions. Priamo sa cookies pracuje pomocou funkcie {{{HttpResponse.set_cookie}}} a slovníka {{{HttpRequest.COOKIES}}}. Sessions sú príjemnejšie; umožňujú priamo prístup ku kontextu, bez nízkoúrovňovej práce s cookies. == Aktivizácia sessions == Ak ste vytvorili projekt normálne, na začiatku by mali byť sessions aktivizované. * V settings.py {{{'django.contrib.sessions.middleware.SessionMiddleware'}}} pridať do {{{MIDDLEWARE_CLASSES}}}. * V settings.py {{{'django.contrib.sessions'}}} pridať do {{{INSTALLED_APPS}}}. V tomto okamihu obsahuje každý {{{HttpRequest}}} (prvý parameter každej view) objekt {{{session}}}, ktorý sa chová ako slovník. Zmeny v session sa automaticky uchovávajú. <> Obsah session je uložený na servri. U klienta je uložená iba jediná cookie. <> Príklad: {{ attachment:views.py }} Toto je views z miniprojektu, ktory si pamätá v session zoznam čísel. Dokáže pridať do zoznamu nové číslo, alebo čísla sčítať a zoznam zmazať. Celý projekt je tu: [[ attachment:sessions.tar.gz ]]. == Platnosť sessions == Normálne je session platná aj po zavretí browsera. Toto je možné ovplyvniť v {{{ settings.py }}} pomocou nastavenia {{{ SESSION_EXPIRE_AT_BROWSER_CLOSE }}}.