1.登陸
知識(shí)點(diǎn):
a.auth.authenticate(username=name值, password=password值)
驗(yàn)證用戶名和密碼
b.auth.login(request, user)
登陸操作
from django.contrib import auth
def djlogin(request):
if request.method == 'GET':
return render(request, 'day6_login.html')
if request.method == 'POST':
name = request.POST.get('name')
password = request.POST.get('password')
# 驗(yàn)證用戶名和密碼,驗(yàn)證通過的話,返回user對(duì)象
user = auth.authenticate(username=name, password=password)
if user:
# 驗(yàn)證成功 登陸
auth.login(request, user)
return HttpResponseRedirect('/stuapp/index/')
else:
return render(request, 'day6_regist.html')
當(dāng)用戶登陸成功時(shí),會(huì)生成一個(gè)sessionid保存在cookies中,可以在數(shù)據(jù)庫(kù)django_session中查看,當(dāng)用戶訪問其他頁(yè)面時(shí),可以通過sessionid判斷用戶是否已經(jīng)登陸。


2.注冊(cè)
知識(shí)點(diǎn):
a.User模型
django自帶User模型,導(dǎo)入方法:from django.contrib.auth.models import User
b.create_user創(chuàng)建用戶
create_user是django封裝好的用于創(chuàng)建用戶的方法,創(chuàng)建方法:User.objects.create_user(username=name, password=password)
,此處的User是django中自帶的User模型
from django.contrib.auth.models import User
def djregist(request):
if request.method == 'GET':
return render(request, 'day6_regist.html')
if request.method == 'POST':
name = request.POST.get('name')
password = request.POST.get('password')
# 此處的User 是 django 自帶的model
User.objects.create_user(username=name, password=password)
return HttpResponseRedirect('/uauth/dj_login/')
數(shù)據(jù)庫(kù)中用于存儲(chǔ)用戶信息的表 auth_user

3.退出登陸
知識(shí)點(diǎn):
a.auth.logout(request)
退出登陸的操作
def djlogout(request):
if request.method == 'GET':
auth.logout(request)
return HttpResponseRedirect('/uauth/dj_login/')
4.登陸驗(yàn)證
知識(shí)點(diǎn):
a.login_required()
若在訪問某頁(yè)面時(shí),需要確認(rèn)用戶登陸成功才能訪問,可以在url中用login_required方法進(jìn)行驗(yàn)證,如果登陸成功就執(zhí)行,如果用戶未登陸,自動(dòng)跳轉(zhuǎn)登陸頁(yè)面。
b.LOGIN_URL
配置跳轉(zhuǎn)路徑,,當(dāng)用戶未登陸訪問其他頁(yè)面時(shí),自動(dòng)跳轉(zhuǎn)到指定的url
url(r'^index/', login_required(views.index)),
url(r'^addstu/', login_required(views.addStu), name='astu'),
url(r'^stupage/', login_required(views.stuPage)),
值得注意的是,一旦加上login_required方法,在用戶未登陸時(shí)訪問頁(yè)面會(huì)出現(xiàn)如下的404錯(cuò)誤,所需還需要在setting.py進(jìn)行配置LOGIN_URL。

配置跳轉(zhuǎn)路徑,當(dāng)用戶未登陸訪問其他頁(yè)面時(shí),自動(dòng)跳轉(zhuǎn)到登陸頁(yè)面
LOGIN_URL = '/uauth/dj_login/'