django使用session來保存用戶登錄狀態
阿新 • • 發佈:2018-07-17
包括 ima one 服務 con user template 設置 ()
先建好登錄用的model,其次理解使用cookie和session的原理,一個在本機保存,一個在服務器保存
- 使用session好處,可以設置登錄過期的時間,
編寫views中login的函數
def login(request): username_get = request.POST[‘name‘] password_get = request.POST[‘password‘] b=[] a = 0 b = UserInfo.objects.filter(username=username_get) a = len(b) if a==0: return HttpResponse("0") else: if request.method == ‘POST‘: #return HttpResponse(result) if b[0].password==password_get: display =‘none‘ displaytwo=‘block‘ username = username_get logined = False template = get_template(‘one/default.html‘) request_context = RequestContext(request) request_context.push(locals()) html = template.render(request_context) response = HttpResponse(html) try: if username_get: request.session[‘name‘] = username_get #使用session來保存用戶登錄信息 #response.set_cookie(‘name‘,username_get) #使用response(用戶自己電腦)保存的cookie來驗證用戶登錄 if password_get: request.session[‘password‘] = password_get #response.set_cookie(‘password‘,password_get) except: pass return response else: return HttpResponse("0")
- login主要的用戶第一次登錄時,需要調用的,包括去POST中的值並驗證,同時保存在cookie或session中
if ‘name‘ in request.session and ‘password‘ in request.session:#判斷是否有登錄過,並是否有效 username = request.session[‘name‘] d[‘display‘] = ‘none‘ d[‘displaytwo‘] = ‘block‘ logined = False#有效就把登錄和註冊的按鈕不顯示 c[‘d‘] = d #c是個字典, template = get_template(‘one/default.html‘) request_context = RequestContext(request) request_context.push(locals()) html = template.render(request_context) return HttpResponse(html)
3. 使用session保存,即使用戶在瀏覽器清除了cookie,重新刷新,登錄信息仍然有效
django使用session來保存用戶登錄狀態