具體來說cookie機制採用在客戶端保持狀態的方案,而session機制採用的是在服務端保持狀態的方案。
cookie :cookie分發通過拓展HTTP協議來實現,是由瀏覽器按照一定原則在後臺自動發送給服務器。
session:當程序需要爲某個客戶端的請求創建一個session時,服務器首先檢查這個客戶端的請求裏是否包含一個session標識。
1.修改login_success.html 文件
{{user}} 用於傳參
<body>
登錄成功,歡迎您,{{ user }}
</body>
2.修改views.py文件
①採用cookie方式
# 登錄動作
def login_action(request):
if request.method == 'POST':
username = request.POST.get('username','')
password = request.POST.get('password','')
if username == 'admin' and password == 'admin123':
# return HttpResponse('login success!')
response= HttpResponseRedirect("/login_success/")
response.set_cookie('user', username,2600)
return response
else:
return render(request,'index.html',{'error':'username or password error!'})
#登錄成功後跳轉
def login_success(request):
username = request.COOKIES.get('user','')
return render(request,"login_success.html",{"user":username})
②採用session方式
# 登錄動作
def login_action(request):
if request.method == 'POST':
username = request.POST.get('username','')
password = request.POST.get('password','')
if username == 'admin' and password == 'admin123':
# return HttpResponse('login success!')
response= HttpResponseRedirect("/login_success/")
request.session['user'] = username
return response
else:
return render(request,'index.html',{'error':'username or password error!'})
#登錄成功後跳轉
def login_success(request):
username = request.session.get('user','')
return render(request,"login_success.html",{"user":username})
創建數據庫 :python manage.py migrate 。創建成功後,數據庫默認配置還有相關的表也自動創建好了。
3.運行項目,打開瀏覽器,查看user值已經傳到新頁面了,並檢查cookie值和sessionid