Django自带登录模块auth的登陆与登出
- 首先创建一个Django项目,这里就过了
- 在views.py里面引入auth模块
from django.contrib.auth import authenticate, login, logout
-
在views.py 里面创建三个视图函数
- 主页视图
- 登陆视图
- 登出视图
- 创建用户用于测试
python manage.py createsuperuser
-
已上几点准备完毕就开始编写逻辑了
-
在登陆视图编写登陆界面
-
登录视图,会转到login.html
-
login.html,提交后会转到home(主页视图)
-
home(主页视图),并且是否是POST请求
#主页视图 def home(request): #判断是否是POST请求 if request.method =='POST': #获取POST里面的内容, name = request.POST['name'] password = request.POST['password'] #authenticate会把POST里面的用户名和密码与auth_user表里面用户和密码对比 #如果比对成功会返回用户名,如果对比失败会返回None user = authenticate(username=name,password=password) #判断user是否为True if user: #user如果为True,则使用login把user储存在session里面 login(request,user) #转到index.html(主页) return render(request,'polls/index.html') else: return HttpResponse('用户或密码填写错误') else: return HttpResponse('请填写数据')
-
已上把user数据存到session里面就成功一大半了,接下来就是在index.html里面回去session里面的user数据了
-
index.html
直接在index.html里面渲染user就可以了,当然这在实际中当然是不可以了,一般需要进行判断比如is_authenticated,判断它是否登陆 -
最后结果
-
登陆实现了,就该登出了,logout(是非常简单的)
直接logout(request)就实现登出了
- 完成测试
- 最后管它有用没用,进来了点个赞再走,Thank You!