django 登入和session過期跳轉
阿新 • • 發佈:2018-12-30
http://www.cnblogs.com/fnng/p/3841246.html
這裡需要說名一下,使用的是django自帶的session封裝技術,是在設定了request.session['userName'] = userName 之後,才會在mysql的session 表中生成資料,並且session_key是儲存在cookie裡面的,也就是說,一臺計算機上同一個瀏覽器(就算雙開兩個chrome)所使用的cookie是一樣的,所以只能一個使用者登入,如果想直接使用session,我自己沒試過,但是肯定要自己定義一張表來儲存session_key的(可以實現同一個電腦雙開chrome,兩個不同使用者登入的需求)。
core程式碼如下,game1是在有session的前提下,可以跳轉的頁面,home是沒有session的前提下的主頁面,並且在game1頁面觸發的同時更新session過期時間:
def home(request): return render(request, 'home.html') @csrf_exempt def queryUser(request): response_data = {} userName = request.POST['userName'].encode('utf-8') passWord = request.POST['passWord'].encode('utf-8') if userName == '' or passWord == '' : response_data['result'] = '-1' return HttpResponse(json.dumps(response_data), content_type="application/json") userObject = models.User.objects.get(name=userName) if userObject.password == passWord: response_data['result'] = '1' request.session['userName'] = userName return HttpResponse(json.dumps(response_data), content_type="application/json") else : response_data['result'] = '0' return HttpResponse(json.dumps(response_data), content_type="application/json") def game1(request): userName = request.session.get('userName') if userName == None : return render(request, 'home.html') else : request.session['userName'] = userName return render(request, 'game1.html')