1. 程式人生 > >如何實現使用者登出功能

如何實現使用者登出功能

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的模板語法