Django登录逻辑,中间用到Cookie创建、读取、删除、等操作


 1 #-*- coding utf-8 -*-
 2 from django.shortcuts import render,render_to_response
 3 from django.http import HttpResponse,HttpResponseRedirect
 4 from django.template import RequestContext
 5 from django import forms
 6 from models import User
 7 
 8 #表单
 9 class UserForm(forms.Form): 
10     username = forms.CharField(label='用户名',max_length=100)
11     password = forms.CharField(label='密码',widget=forms.PasswordInput())
12 
13 
14 #注册
15 def regist(req):
16     if req.method == 'POST':
17         uf = UserForm(req.POST)
18         if uf.is_valid():
19             #获得表单数据
20             username = uf.cleaned_data['username']
21             password = uf.cleaned_data['password']
22             #添加到数据库
23             User.objects.create(username= username,password=password)
24             return HttpResponse('regist success!!')
25     else:
26         uf = UserForm()
27     return render_to_response('regist.html',{'uf':uf}, context_instance=RequestContext(req))
28 
29 #登陆
30 def login(req):
31     if req.method == 'POST':
32         uf = UserForm(req.POST)
33         if uf.is_valid():
34             #获取表单用户密码
35             username = uf.cleaned_data['username']
36             password = uf.cleaned_data['password']
37             #获取的表单数据与数据库进行比较
38             user = User.objects.filter(username__exact = username,password__exact = password)
39             if user:
40                 #比较成功,跳转index
41                 response = HttpResponseRedirect('/online/index/')
42                 #将username写入浏览器cookie,失效时间为3600
43                 response.set_cookie('username',username,3600)
44                 return response
45             else:
46                 #比较失败,还在login
47                 return HttpResponseRedirect('/online/login/')
48     else:
49         uf = UserForm()
50     return render_to_response('login.html',{'uf':uf},context_instance=RequestContext(req))
51 
52 #登陆成功
53 def index(req):
54     username = req.COOKIES.get('username','')
55     return render_to_response('index.html' ,{'username':username})
56 
57 #退出
58 def logout(req):
59     response = HttpResponse('logout !!')
60     #清理cookie里保存username
61     response.delete_cookie('username')
62     return response
63 复制代码

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM