Django自帶的注冊(cè)登陸功能

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)登陸。


image.png

image.png

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


image.png

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。


image.png

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

LOGIN_URL = '/uauth/dj_login/'
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 經(jīng)過對(duì)django的初步學(xué)習(xí),我們已經(jīng)對(duì)后臺(tái)的基本流程以及django的運(yùn)作有了一定的了解,但是這還不足夠,dja...
    coder_ben閱讀 3,958評(píng)論 8 34
  • 22年12月更新:個(gè)人網(wǎng)站關(guān)停,如果仍舊對(duì)舊教程有興趣參考 Github 的markdown內(nèi)容[https://...
    tangyefei閱讀 35,415評(píng)論 22 257
  • 其實(shí),很多時(shí)候,羨慕那些任性的壞孩子。他們才是最明智的。因?yàn)橘N上了壞的標(biāo)簽,可以肆無忌憚的做自己??梢耘涯?,可以瘋...
    喂喂熙熙閱讀 196評(píng)論 0 0
  • 人不瘋狂枉為少年,身邊很多同學(xué)朋友經(jīng)常掛在嘴邊的話就是:你的青春被狗吃了嗎?即將面領(lǐng)畢業(yè)了,突然發(fā)現(xiàn)還有好多想做的...
    coco林柒閱讀 605評(píng)論 0 1
  • 我們是鄭州市金水區(qū)緯四路小學(xué)一年級(jí)二班的小伙伴。在班主任吳老師引領(lǐng)下,我們有幸連續(xù)參加了第六期、第七期班班有讀,閱...
    魯躍虎媽媽閱讀 666評(píng)論 3 7

友情鏈接更多精彩內(nèi)容