python[django]03-管理系統01(cookie & session)

具體來說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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章