標籤:from 還需 session style 地址 use welcome ora code
1. 建立超級使用者
命令列輸入: python manage.py createsuperuser
from django.contrib import auth
2. auth.authenticate(username=username, password=pwd)
驗證使用者名稱和密碼
如果驗證成功,得到的是一個使用者物件
如果驗證失敗,得到的是匿名使用者
3. auth.login(request, user)
將驗證過的使用者 賦值給 request.user屬性
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
實現代碼如下:格外注意對象一致
1 from django.contrib import auth 2 def login(request): 3 if request.method==‘POST‘: 4 user=request.POST.get(‘user‘) 5 pwd=request.POST.get(‘psd‘) 6 use=auth.authenticate(username=user,password=pwd) 7 auth.login(request,use) 8 if use: 9 return render(request,‘welecome.html‘,{‘user‘:use})10 else:11 return redirect(‘login.html‘)12 return render(request,‘login.html‘)
4. auth.logout(request)
request.session.flush()
將session資料都刪除,並且Cookie也失效
1 def logout(request):2 auth.logout(request)3 return redirect(‘/login/‘)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>檢查登入狀態:
添加一個裝飾器 @login_required()
from django.contrib.auth.decorators import login_required
1 @login_required()2 def welcome(request):3 print(request.user.username)4 print(request.user.is_authenticated())5 return render(request,‘welecome.html‘)
同時還需要指定如果未登入狀態,訪問的地址,在seeting檔案下面設定要訪問的url
1 #如果沒有登入,預設跳轉到這個url2 LOGIN_URL=‘/login/‘
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
建立一個普通使用者物件:
1 def register(request): 2 from django.contrib.auth.models import User 3 #建立一個使用者物件 4 user_obj=User.objects.create_user(username=‘ccc‘,password=‘lisa123456‘) 5 #校正密碼是否正確 6 ret=user_obj.check_password(‘lisa123456‘) 7 print(ret) 8 #修改密碼 9 user_obj.set_password(‘nokia12138‘)10 user_obj.save() #一定不能忘記提交儲存11 return HttpResponse(‘ok‘)
auth認證模組