午夜剧场伦理_日本一道高清_国产又黄又硬_91黄色网战_女同久久另类69精品国产_妹妹的朋友在线

您的位置:首頁技術(shù)文章
文章詳情頁

Django自帶用戶認(rèn)證系統(tǒng)使用方法解析

瀏覽:139日期:2024-09-19 10:46:13

Django自帶用戶認(rèn)證系統(tǒng),這個系統(tǒng)支持訪問控制、注冊用戶、關(guān)聯(lián)創(chuàng)建者和內(nèi)容等;在開發(fā)用戶認(rèn)證功能時的時候,可以使用django中的django.contrib.auth 中封?了注冊、認(rèn)證,登錄登出方法,可以直接使用;

相關(guān)表

在使用'python manage.py makemigrationss'和'python manage.py migrate'遷移完成數(shù)據(jù)庫之后

根據(jù)配置文件settings.py中的數(shù)據(jù)庫段生成的數(shù)據(jù)表中已經(jīng)包含了6張進(jìn)行認(rèn)證的數(shù)據(jù)表,分別是

auth_user auth_group auth_group_permissions auth_permission auth_user_groups auth_user_user_permissions

自帶用戶認(rèn)證系統(tǒng),進(jìn)行用戶認(rèn)證的數(shù)據(jù)表為auth_user(用戶的數(shù)據(jù)保存在這個表里)

一、登陸功能:

authenticate():提供了用戶認(rèn)證,即驗證用戶名以及密碼是否正確,一般需要username和password兩個關(guān)鍵字參數(shù)

如果通過認(rèn)證,authenticate()函數(shù)會返回一個User對象。當(dāng)我們試圖登陸一個從數(shù)據(jù)庫中直接取出來不經(jīng)過authenticate()的User對象時會報錯。

1.登陸 auth.authenticate(username=name值, password=password值)

2.驗證用戶名和密碼 auth.login(request, user) 這個函數(shù)使用Django的session框架給某個已認(rèn)證的用戶附加上session_id信息。

from django.shortcuts import render,redirect,HttpResponsefrom django.contrib.auth import authenticate,logindef auth_view(request): username=request.POST.GET('usernmae') # 獲取用戶名 password=request.POST.GET('password') # 獲取用戶的密碼 user=authenticate(username=username,password=password) # 驗證用戶名和密碼,返回用戶對象 if user: # 如果用戶對象存在 login(request,user) # 用戶登陸 return redirect('/index/') else: return HttpResponse('用戶名或密碼錯誤')

當(dāng)用戶登陸成功時,會生成一個sessionid保存在cookies中,可以在數(shù)據(jù)庫django_session中查看,當(dāng)用戶訪問其他頁面時,可以通過sessionid判斷用戶是否已經(jīng)登陸。

Django自帶用戶認(rèn)證系統(tǒng)使用方法解析

Django自帶用戶認(rèn)證系統(tǒng)使用方法解析

二、注冊功能

django自帶User模型,導(dǎo)入方法:from django.contrib.auth.models import User

User是auth模塊中維護(hù)用戶信息的關(guān)系模式,在數(shù)據(jù)庫中被命名為auth_user,使用migrate會自動生成.

user對象

User對象屬性:username,password為必填項

password用哈希算法保存到數(shù)據(jù)庫中

is_staff:判斷用戶是否擁有網(wǎng)站的管理權(quán)限 is_active:判斷是否允許用戶登陸,設(shè)置為“False”時可以不用刪除用戶來禁止用戶登陸

用create_user輔助函數(shù)創(chuàng)建用戶

a、create_user創(chuàng)建用戶

create_user是django封裝好的用于創(chuàng)建用戶的方法(注意使用該方法注冊的用戶才能處理密碼明文存密文到數(shù)據(jù)庫的問題),

創(chuàng)建方法:User.objects.create_user(username=name, password=password)此處的User是django中自帶的User模型from django.contrib.auth.models import User

def regist(request):name = request.POST.get(’name’)password = request.POST.get(’password’)User.objects.create_user(username=name, password=password)

三、退出登陸auth.logout(request)

這個函數(shù)接受一個HttpResponse對象,無返回值。當(dāng)調(diào)用該函數(shù)時,當(dāng)前請求的session信息全部被清除。即使當(dāng)前用戶沒有登陸,調(diào)用該函數(shù)也不會報錯。

def logout(request):if request.method == ’GET’:auth.logout(request)

四、登陸態(tài)驗證

login_required() 若在訪問某頁面時,需要確認(rèn)用戶登陸成功才能訪問,可以在url中用login_required方法進(jìn)行驗證,如果登陸成功就執(zhí)行,如果用戶未登陸,自動跳轉(zhuǎn)登陸頁面。

a.login_requierd()裝飾器

配置跳轉(zhuǎn)路徑,,當(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方法,在用戶未登陸時訪問頁面會出現(xiàn)如下的404錯誤,所需還需要在setting.py進(jìn)行配置LOGIN_URL。

user對象的login_requierd()裝飾器

Django自帶用戶認(rèn)證系統(tǒng)使用方法解析

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

LOGIN_URL = ’/login/’

裝飾器也可以加到view方法前

from django.contrib.auth.decorators import login_required@login_requireddef views(request):pass

五、修改存儲自定義認(rèn)證中的User表

用戶也可以不使用自帶用戶認(rèn)證系統(tǒng)默認(rèn)的數(shù)據(jù)表auth_user,通過以下方式可以將用戶數(shù)據(jù)保存到自己定義的表中

from django.contrib.auth.models import Userclass UserProfile(models.Model): user = models.OneToOneField(User,on_delete=models.CASCADE) # django自帶用戶表User模塊和自定義的用戶關(guān)聯(lián) name = models.CharField(max_length=32) def __str__(self): return self.name

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Django
相關(guān)文章:
主站蜘蛛池模板: 国产无遮挡又黄又爽又色 | 国产在线成人 | 这里只有精品9 | 手机在线成人 | 成人午夜大片 | 国产性―交―乱―色―情人 | www.xx日本 | 亚洲男人天堂2019 | 日日夜夜狠狠爱 | 一区二区三区在线视频观看 | 成人黄色在线 | 麻豆国产尤物av尤物在线观看 | 亚洲观看黄色网 | 男女操网站 | 一呦二呦三呦精品网站 | 午夜影院操 | 久久国产91 | 日韩综合在线视频 | 蜜臀久久99精品久久久画质超高清 | 成人福利视频在线观看 | 国产精品不雅视频 | 婷婷伊人久久 | 色蜜桃 | 亚洲精品国产精品国自产 | 高清国产一区二区三区四区五区 | jizz高潮 | 亚洲va欧美va | 97成人精品 | 97综合网| 葵司免费一区二区三区四区五区 | 国产午夜精品一区二区三区 | av免费在线网站 | 黄色在线观看国产 | 欧洲精品一区二区 | 91国视频 | 在线观看国产欧美 | 国产成人精品一区二区三区 | 成人中文在线 | 中文字幕的 | 91黄色免费观看 | 亚洲高清av |