91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

django驗證系統如何使用

發布時間:2023-03-21 13:50:28 來源:億速云 閱讀:114 作者:iii 欄目:開發技術

這篇文章主要介紹了django驗證系統如何使用的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇django驗證系統如何使用文章都會有所收獲,下面我們一起來看看吧。

user對象

用戶對象是認證系統的核心。django的認證框架中的用戶只有一個類

默認用戶的主要屬性

  • username

  • password

  • email

  • first_name

  • last_name

創建用戶

創建用戶最直接的方法是使用包含create_user()的函數

from django.contrib.auth.models import User
user=User.objects.create_user("username","email","password")

創建超級用戶

通過命令行方式創建超級用戶

python manage.py createsuperuser

更改密碼

第一種:通過命令行方式

python manage.py changepassword (你的用戶名,如果沒有輸入,默認當前的用戶)

第二種:通過數據模型開修改

from django.contrib.auth.models importf User
user=User.objects.get(username=(需要修改的用戶名))
user.set_password("new password")
user.save()

驗證用戶

authenticate(request,username,password)
使用authenticate(request)來驗證用戶。它使用username和password作為參數來驗證,對每個身份驗證后端進行檢查。如果后端驗證有效,則返回一個User對象,如果沒有,將返回None

web請求認證

django使用sessions和中間件將身份驗證系統掛接到請求對象中

它們在每次請求都會提供request.user屬性。如果當前沒有用戶登錄。這個屬性將會設置為AnonymousUser,否則將會被設置為user實例

你可以使用is_authenticatded區分兩者

只讀屬性,始終返回 True (匿名用戶 AnonymousUser.is_authenticated 始終返回 False )。這是一種判斷用戶是否已通過身份認證的方法。這并不意味著任何權限,也不會檢查用戶是否處于活動狀態或是否具有有效會話。即使通常你會根據 request.user 檢查這個屬性,以確定它是否被 AuthenticationMiddleware 填充(表示當前登錄的用戶),但是你應該知道該屬性對于任何 User 實例都返回 True。

if request.user.is_authenticated:
    pass
else:
    pass

用戶如何登陸

如果有已驗證的用戶想添加到session中,將通過login()函數完成

login(request,user,)要在視圖中讓用戶登錄,使用 login() 。它需要 HttpRequest 對象和 User 對象。通過 Django 的 session 框架, login() 會在 session 中保存用戶的ID。

from django.contrib.auth import authenticate,login
def fun(request):
    username=request.POST("username")
    password=request.POST("password")
    user=authenticate(request,username=username,password=password)
    if user is not None:
        login(request,user)
    else:
        pass

用戶如何登出

logout(request)

如果已經通過django.contrib.auth.login()登錄的用戶想要登出,可以使用logout()方法,需要傳入request

from django.contrib.auth import logout
def logout_view(request):
    logout(request)

限制對未登錄用戶的訪問

原始方式

限制訪問頁面最原始的辦法就是檢查,request.user.is_authenticated并重定向到登錄頁面

from django.conf import settings
from django.shortcuts import redirect
def my_view(request):
    if not request.user.is_authenticated:
        return redirect()

login_required裝飾器

作為快捷方式,你可以使用login_required()裝飾器

from django.contrib.auth.decorators import login_required
@login_required
def my_view(request):
    ...

login_required()會執行以下操作:

  • 如果用戶沒有登錄,會重定向到settings.LOGIN_URL,并傳遞絕對路徑到查詢字符串中,例如: /accounts/login/?next=/polls/3/ 。

  • 如果用戶已經登錄,則正常執行視圖

  • login_required()也有可選參數login_url用來指定重定向的路由

  • 默認情況下,成功驗證時用戶跳轉的路徑保存在名為 "next" 的查詢字符串參數中。如果你希望這個參數使用不同名稱,請在 login_required() 中傳遞可選參數 redirect_field_name :

LoginRequired Mixin

使用基于類的視圖時,可以使用LoginRequiredMixin實現和login_required相同的行為。這個Mixin應該在繼承列表最左邊的位置

from django.contrib.auth.mixins import LoginRequiredMixin
class MyView(LoginRequiredMixin,View):
    login_url="/login/"
    redirect_field_name="xxx"

關于“django驗證系統如何使用”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“django驗證系統如何使用”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

容城县| 澄迈县| 丘北县| 凉城县| 友谊县| 舒兰市| 仁布县| 五莲县| 刚察县| 竹溪县| 深州市| 理塘县| 高阳县| 金溪县| 锦屏县| 襄汾县| 铅山县| 紫阳县| 瑞昌市| 宜黄县| 余江县| 西平县| 仙居县| 临武县| 桦南县| 壶关县| 方城县| 黄浦区| 永州市| 崇明县| 柘荣县| 岫岩| 基隆市| 琼结县| 庆阳市| 北辰区| 福州市| 林芝县| 兰考县| 唐河县| 新巴尔虎左旗|