Django自带登录模块auth的登陆与登出

  1. 首先创建一个Django项目,这里就过了
  2. 在views.py里面引入auth模块
	from django.contrib.auth import authenticate, login, logout
  1. 在views.py 里面创建三个视图函数
    1. 主页视图
    2. 登陆视图
    3. 登出视图
  2. 创建用户用于测试
	python manage.py createsuperuser
  1. 已上几点准备完毕就开始编写逻辑了

  2. 在登陆视图编写登陆界面

  3. 登录视图,会转到login.html

  4. login.html,提交后会转到home(主页视图)
    Django自带登录模块auth的登陆与登出

  5. 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('请填写数据')
    
  6. 已上把user数据存到session里面就成功一大半了,接下来就是在index.html里面回去session里面的user数据了

  7. index.html
    Django自带登录模块auth的登陆与登出
    直接在index.html里面渲染user就可以了,当然这在实际中当然是不可以了,一般需要进行判断比如is_authenticated,判断它是否登陆

  8. 最后结果
    Django自带登录模块auth的登陆与登出

  9. 登陆实现了,就该登出了,logout(是非常简单的)
    Django自带登录模块auth的登陆与登出

	直接logout(request)就实现登出了
  1. 完成测试
  2. 最后管它有用没用,进来了点个赞再走,Thank You!