django使用session來保存用戶登錄狀態


  1. 先建好登錄用的model,其次理解使用cookie和session的原理,一個在本機保存,一個在服務器保存

  • 使用session好處,可以設置登錄過期的時間,
  1. 編寫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)

  1. 使用session保存,即使用戶在瀏覽器清除了cookie,重新刷新,登錄信息仍然有效


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM