session應用示例html
1 from django.shortcuts import render 2 from django.shortcuts import HttpResponse 3 from django.shortcuts import redirect 4 5 # Create your views here. 6 user = "a" 7 pwd = "a" 8 def login(request): 9 if request.method == "GET": 10 return render(request,"login.html") 11 elif request.method == "POST": 12 u = request.POST.get("user") 13 p = request.POST.get("password") 14 if u == user and p ==pwd: 15 #session中設置值 16 request.session["username"] = u 17 request.session["is_login"] = True 18 if request.POST.get("rmb",None) == "1": 19 #設置超時時間 20 request.session.set_expiry(10) 21 return redirect("/index") 22 else: 23 return render(request,"login.html") 24 def index(request): 25 #session中獲取值 26 if request.session.get("is_login",None): 27 current_user = request.session["username"] 28 return render(request,"index.html",{"current_user":current_user}) 29 else: 30 return redirect("/login") 31 def logout(request): 32 #註銷 33 request.session.clear() 34 return redirect("/login")
settings文件內配置python
Django默認支持Session,而且默認是將Session數據存儲在數據庫中,即:django_session 表中。
數據庫
a. 配置 settings.py
SESSION_ENGINE
=
'django.contrib.sessions.backends.db'
# 引擎(默認)
SESSION_COOKIE_NAME =
"sessionid"
# Session的cookie保存在瀏覽器上時的key,即:sessionid=隨機字符串(默認)
SESSION_COOKIE_PATH =
"/"
# Session的cookie保存的路徑(默認)
SESSION_COOKIE_DOMAIN
=
None
# Session的cookie保存的域名(默認)
SESSION_COOKIE_SECURE
=
False
# 是否Https傳輸cookie(默認)
SESSION_COOKIE_HTTPONLY
=
True
# 是否Session的cookie只支持http傳輸(默認)
SESSION_COOKIE_AGE
=
1209600
# Session的cookie失效日期(2周)(默認)
SESSION_EXPIRE_AT_BROWSER_CLOSE
=
False
# 是否關閉瀏覽器使得Session過時(默認)
SESSION_SAVE_EVERY_REQUEST
=
False
# 是否每次請求都保存Session,默認修改以後才保存(默認)