溫馨提示×

溫馨提示×

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

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

Django認證系統(tǒng)user對象實現(xiàn)過程解析

發(fā)布時間:2020-10-19 21:18:44 來源:腳本之家 閱讀:134 作者:pfeiliu 欄目:開發(fā)技術(shù)

User對象

User對象是認證系統(tǒng)的核心。它們通常表示與你的站點進行交互的用戶,并用于啟用限制訪問、注冊用戶信息和關(guān)聯(lián)內(nèi)容給創(chuàng)建者等。在Django的認證框架中只存在一種類型的用戶,因此諸如'superusers'或管理員'staff'用戶只是具有特殊屬性集的user對象,而不是不同類型的user對象。

創(chuàng)建users

創(chuàng)建users最直接的方法是使用create_user()輔助函數(shù):

>>> from django.contrib.auth.models import User
>>> user = User.objects.create_user('john', 'lennon@thebeatles.com', 'johnpassword')
from django.contrib.auth.models import User
def create_user(request):
  #auth_user
  # user = User.objects.create_user('john', 'lennon@thebeatles.com', 'johnpassword')
  #superuser python manage.py createsuperuser --username=joe --email=joe@example.com
  u = User.objects.get(username='john')
  u.set_password('new password')
  u.save()
  return HttpResponse("success-----%s"%u)

創(chuàng)建成功后見數(shù)據(jù)庫auth_user表

Django認證系統(tǒng)user對象實現(xiàn)過程解析

創(chuàng)建superusers

使用createsuperuser命令創(chuàng)建superusers:

$ python manage.py createsuperuser --username=joe --email=joe@example.com

或者

$ python manage.py createsuperuser

接下來依次輸入用戶密碼即可
成功后見auth_user表

修改密碼

>>> from django.contrib.auth.models import User
>>> u = User.objects.get(username='john')
>>> u.set_password('new password')
>>> u.save()

成功后見auth_user表,密碼已經(jīng)改變

Django認證系統(tǒng)user對象實現(xiàn)過程解析

認證Users

authenticate(**credentials)[source]

認證一個給定用戶名和密碼,請使用authenticate()。它以關(guān)鍵字參數(shù)形式接收憑證,對于默認的配置它是username和password,如果密碼對于給定的用戶名有效它將返回一個User對象。如果密碼無效,authenticate()返回None。例子:

from django.contrib.auth import authenticate
user = authenticate(username='john', password='secret')
if user is not None:
  # the password verified for the user
  if user.is_active:
    print()
  else:
    print()
else:
  # the authentication system was unable to verify the username and password
  print()
def auth(request):
  user = authenticate(username='john', password='new password')#john
  # user = authenticate(username='john', password='johnpassword')#None
  print(user)
  if user is not None:
    # the password verified for the user
    if user.is_active:
      print("驗證成功,已激活")
    else:
      print("驗證成功,未激活")
  else:
    # the authentication system was unable to verify the username and password
    print("沒有此用戶")
  return HttpResponse(user)

john

驗證成功,已激活

Django認證系統(tǒng)user對象實現(xiàn)過程解析

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

向AI問一下細節(jié)

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

AI