Django Cookie&Session
出典: UeblogWiki
目次 |
Topic
Cookie
Cookieの扱いはHttpRequestに辞書相当で扱えます。
セットする場合はHttpResponseオブジェクトのset_cookieメソッドを使います
例
def show_hoge(request):
if "hoge" in request.COOKIES:
return HttpResponse("Your hoge is %s" % request.COOKIES["hoge"])
else:
return HttpResponse("You don't have hoge")
def set_hoge(request):
if "hoge" in request.GET:
response = HttpResponse("Your hoge is now %s " % requset.GET["hoge"])
response.set_cookie("hoge", request.GET["hoge"],
max_age= 60*60*24*14 #14日保存
)
else:
response = HttpResponse("You didn't give a favorite hoge")
return response
set_cookieメソッドの引数はほかにmax_age, expires, path, domain, secureがあります。
- max_age Cookieの有効期限を指定できます。expireとmax_ageを指定しない場合はプラウザの終了時にCookieが消えます。
- expire Wdy, DD-Mon-YY HH:MM:SS GMT 形式で有効期限を指定できます。max_ageとexpire両方指定している場合はexpireの方を優先させます。
- path pathにマッチした場合のみ有効になります。
- domain 指定したドメインのみで有効になります。
- secure httpsの時のみ有効になります。
settings.pyでSESSION_EXPIRE_AT_BROWSER_CLOSEがFalseに設定してある必要があります(defaultではFalse)。
request.session.test_cookie
- request.session.set_test_cookie()
- request.session.test_cookie_worked()
- request.session.delete_cookie()
Session
settings.pyに
- MIDDLEWARE_CLASSESにdjango.contrib.sessions.middleware.SessionMiddlewareを追加
- INSTALLED_APPSにdjango.contrib.sessionsを追加
デフォルトのsettings.pyでは設定されている。
