如何實現使用者登出功能
阿新 • • 發佈:2018-12-25
HttpResponse()裡有個delete_cookie()方法專門用來刪除cookie
我們到此來完整的實現一下:訪問首頁如果沒有登入,就跳轉到登入頁面,登入成功之後再跳轉回來的過程。
3個方法,index、login、logout
# coding:utf-8
from django.shortcuts import render,render_to_response
# Create your views here.
from django.http import HttpResponse
from UserClass import UserLogin
def index (request):
msg = {'username':'guest'}
if request.COOKIES.get('userlogin_username') != None :
msg['username'] = request.COOKIES.get('userlogin_username')
myReponse = render_to_response("index.html",msg)
return myReponse
def login(request):
msg = {'result': ''}
if request.method == 'POST' :
getUserName = request.POST.get('username')
getPwd = request.POST.get('pwd')
# 例項化UserLogin類
loginObj = UserLogin(getUserName,getPwd)
if loginObj.isLogin():
myReponse = HttpResponse("<script>self.location='/index'</script>")
myReponse.set_cookie('userlogin_username' ,getUserName,3600)
return myReponse
else:
msg['result'] = '使用者名稱或密碼錯誤'
myReponse = render_to_response("login.html", msg)
return myReponse
# 使用者登出
def logout(request):
r = HttpResponse()
r.delete_cookie('userlogin_username')
r.write("<script>self.location='/index'</script>")
return r
首頁模板index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>首頁</title>
</head>
<body>
<h2>這是首頁,當前登入使用者是:{{ username }}</h2>
{% ifequal username "guest" %}
<p><a href="/login">登入</a></p>
{% else %}
<p><a href="/logout">安裝退出</a></p>
{% endifequal %}
</body>
</html>
其中用到了Django的模板語法