1. 程式人生 > >Django - session 會話跟蹤技術

Django - session 會話跟蹤技術

1、session簡介

|session  /'seʃ(ə)n/  /'sɛʃən/ 

基於cookies開發,將值存到服務端

寫session

讀session

Session是伺服器端技術,利用這個技術,伺服器在執行時可以 為每一個使用者的瀏覽器建立一個其獨享的session物件,由於 session為使用者瀏覽器獨享,

所以使用者在訪問伺服器的web資源時 ,可以把各自的資料放在各自的session中,當用戶再去訪問該伺服器中的其它web資源時,其它web資源再從使用者

各自的session中 取出資料為使用者服務。

 

session之儲存登入狀態資訊

views.py

from django.shortcuts import render,HttpResponse,redirect

# Create your views here.

from app01.models import UserInfodef login_session(request):
    if request.method == 'POST':
        username = request.POST.get('user')
        pwd = request.POST.get('pwd
') user = UserInfo.objects.filter(username=username, password=pwd).first() ''' 1 生成隨機字串 adcadc2323 2 response.set_cookie('sessionid',adcadc2323) 3 在django-session表中建立一條記錄 session-key session-data adcadc2323 {'is_login':True,'username':'yuan'}
''' if user: request.session['is_login']=True request.session['username']='yuan' return HttpResponse('登入成功') return render(request,'login.html') def index_session(request): is_login = request.session['is_login'] username = request.session['username'] ''' 1 request.COOKIE.get("session") # ltv8zy1kh5lxj1if1fcs2pqwodumr45t 2 django-session表中過濾紀錄: 在django—session表中建立一條記錄: session-key session-data ltv8zy1kh5lxj1if1fcs2pqwodumr45t {"is_login":True,"username":"yuan"} obj=django—session.objects .filter(session-key=ltv8zy1kh5lxj1if1fcs2pqwodumr45t).first() 3 obj.session-data.get("is_login") ''' is_login = request.session.get("is_login") if not is_login: return redirect("/login_session/") username = request.session.get("username") last_visit_time = request.session.get("last_visit_time") return render(request, "index.html", {"username": username, "last_visit_time": last_visit_time})

不同瀏覽器,會建立不同的session_id