程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Django17:內建用戶系統

編輯:Python

1、定義

        Django帶有一個用戶認證系統。它處理用戶賬號、組、權限以及基於cookie的用戶會話。用戶可以直接是使用Django自帶的用戶表。

2、基本字段

        模型類位置from django.contrib.contrib.auth.models import User

  • username:用戶名
  • password:密碼
  • email:郵箱
  • first_name:名
  • last_name:姓
  • is_superuser:是否是管理員賬號(/admin)
  • is_staff:是否可以訪問admin管理界面
  • is_active:是否是活躍用戶,默認True。一般不刪除用戶,而是將用戶的is_active設為False
  • last_login:上一次的登錄時間
  • date_joined:用戶創建的時間

3、創建用戶

(1)創建莆田用戶create_user

from django.contrib.auth.models import user
user = User.objcets.create_user(username=’用戶名’, password=’密碼’, email=’郵箱’, …)

(2)創建超級用戶create_superuser

from django.contrib.auth.models import user
user = User.objcets.create_superuser(username=’用戶名’, password=’密碼’, email=’郵箱’, …)

創建完可在auth_user表中查看:

4、刪除用戶

例:

from django.contrib.auth.models import User
try:
user = User.objcects.get(username=’用戶名’)
user.is_active = False # 記當前用戶無效
user.save()
print(“刪除失敗”)
except:
print(“刪除失敗”)

5、密碼

(1)校驗密碼

# 如果用戶名密碼校驗成功返回對於user對象,否則返回None
from django.contrib.auth import authenticate
user = authenticate(username=username, password=password)

(2)修改密碼

from django.contrib.auth.models import User
try:
user = User.objects.get(username=’aaa’)
user.set_password(‘123’)
user.save()
return HttpResponse(‘密碼修改成功’)
except:
return HttpResponse(‘密碼修改失敗’)

6、登錄

(1)登錄狀態保持

from django.contrib.auth.models import login
def login_view(request):
user = authenticate(username=username, password=password)
login(request, user)

(2)登錄狀態校驗

from django.contrib.auth.decorators import login_required
@login_required
def index_view(request):
# 該視圖必須為用戶登錄狀態下才可訪問
# 當前登錄用戶可通過rquest.user獲取
login_user = request.user
…

(3)登錄狀態取消

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

7、內建用戶表——擴展字段

方法一:通過建立新表,跟內建表做1對1

方法二:繼承內建的抽象user模型類

步驟:

  •         添加新的應用
  •         定義模型類,繼承AbstractUser
  •         settings.ps中指明AUTH _USER_MODEL = ‘應用名;類名’’

注意:此操作要在第一次migrate前進行


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved