-
先建好登錄用的model,其次理解使用cookie和session的原理,一個在本機保存,一個在服務器保存
-
編寫views中login的函數
def login(request):
username_get = request.POST['name']
password_get = request.POST['password']
b=[]
a = 0
b = UserInfo.objects.filter(username=username_get)
a = len(b)
if a==0:
return HttpResponse("0")
else:
if request.method == 'POST':
#return HttpResponse(result)
if b[0].password==password_get:
display ='none'
displaytwo='block'
username = username_get
logined = False
template = get_template('one/default.html')
request_context = RequestContext(request)
request_context.push(locals())
html = template.render(request_context)
response = HttpResponse(html)
try:
if username_get:
request.session['name'] = username_get #使用session來保存用戶登錄信息
#response.set_cookie('name',username_get) #使用response(用戶自己電腦)保存的cookie來驗證用戶登錄
if password_get:
request.session['password'] = password_get
#response.set_cookie('password',password_get)
except:
pass
return response
else:
return HttpResponse("0")
- login主要的用戶第一次登錄時,需要調用的,包括去POST中的值並驗證,同時保存在cookie或session中
if 'name' in request.session and 'password' in request.session:#判斷是否有登錄過,並是否有效
username = request.session['name']
d['display'] = 'none'
d['displaytwo'] = 'block'
logined = False#有效就把登錄和注冊的按鈕不顯示
c['d'] = d #c是個字典,
template = get_template('one/default.html')
request_context = RequestContext(request)
request_context.push(locals())
html = template.render(request_context)
return HttpResponse(html)
- 使用session保存,即使用戶在瀏覽器清除了cookie,重新刷新,登錄信息仍然有效
