Sesje w Django
14 July 2008
Comments
Korzystanie z sesji w Django jest bardzo proste i nie wymaga wielu linijek kodu.
- Upewnij się czy w settings.py masz w MIDDLEWARE_CLASSES klasę django.contrib.sessions.middleware.SessionMiddleware. Domyślnie powinna tam być.
- Dodaj do INSTALLED_APPS - 'django.contrib.sessions'
- Wykonaj python manage.py syncdb
Przykłady
Najprostsze, umieść w widoku:request.session['klucz'] = 'wartosc'
print request.session['klucz']
Ten pochodzi z dokumentacji django. Jeżeli użytkownik dodał już komentarz to zablokuje próbę dodania kolejnego (spamowanie, floodowanie, dodawanie wpisów po sobie..):
def post_comment(request, new_comment):
if request.session.get('has_commented', False):
return HttpResponse("You've already commented.")
c = comments.Comment(comment=new_comment)
c.save()
request.session['has_commented'] = True
return HttpResponse('Thanks for your comment!')
Konfiguracja Sesji
Middleware można konfigurować z poziomu settings.py:SESSION_COOKIE_AGE - czas ważności cookie sesji w sekundach. Domyślnie 2 tygodnie.
SESSION_COOKIE_DOMAIN - domena ciasteczka. Ustaw na swoją domenę np "rk.edu.pl" by uzyskać dostęp do ciacha w obrębie całej domeny (subdomen), 'None' na standardowe ciacho dla bieżącej domeny.
SESSION_COOKIE_NAME - nazwa ciacha dla sesji. Domyślnie sessionid.
SESSION_COOKIE_SECURE - jeżeli ustawione na True ciacho będzie przesyłane tylko przez połączenia HTTPS
SESSION_EXPIRE_AT_BROWSER_CLOSE - jeżeli ustawione na True sesja wygaśnie po zamknięciu przeglądarki
RkBlog
Comment article