djangoのセッションキーについて調べてた

メモ。django.contrib.sessionsのセッションキーが毎回変わる?とかそんな話が出てて、どういう動きするんだったか調べてた。
Djangoのバージョンは1.2.4。
適当に書いたview関数。

views.py

from django.http import HttpResponse
from random import choice

def index(request):
    x = choice([0, 1, 2])
    if x == 0:
        request.session['a'] = 1
    elif x == 1:
        request.session.flush()
    return HttpResponse(request.session.session_key + ' ' + str(request.session.keys()) + ' ' + str(x), content_type='text/plain')
  • clearメソッドではセッションキーは変わらない
  • ログアウトなどの処理ではflushメソッドを使う(flushを使うと次のリクエストではセッションキーが変わる)
  • セッションを使っていない場合はリクエスト毎にセッションキーが変わる

どういうCOOKIEを返す/返さない、については調べてない。今回はセッションの挙動だけ。