自定義使用者模型類 遷移使用者模型類

2021-10-21 11:47:05 字數 1974 閱讀 3459

django.contrib.auth
1.包含認證框架的核心和預設的模型。

django認證系統包含的內容

使用者:使用者模型類、使用者認證。

許可權:標識乙個使用者是否可以做乙個特定的任務,mis系統常用到。

組:對多個具有相同許可權的使用者進行統一管理,mis系統常用到。

密碼:乙個可配置的密碼雜湊系統,設定密碼、密碼校驗。

django認證系統中提供了使用者模型類user儲存使用者的資料。

user物件是認證系統的核心。

django認證系統使用者模型類位置.

2.父類abstractuser介紹:

user物件基本屬性

建立使用者(註冊使用者)必選: username、password

建立使用者(註冊使用者)可選:email、first_name、last_name、last_login、date_joined、is_active 、is_staff、is_superuse

判斷使用者是否通過認證(是否登入):is_authenticated

建立使用者(註冊使用者)的方法

user = user.objects.create_user(username, email, password, **extra_fields)

使用者認證(使用者登入)的方法

from django.contrib.auth import authenticate

user = authenticate(username=username, password=password, **kwargs)

處理密碼的方法

設定密碼:set_password(raw_password)

校驗密碼:check_password(raw_password)

3.自定義使用者模型類

思考:為什麼要自定義使用者模型類?

觀察註冊介面會發現,美多**註冊資料中必選使用者mobile資訊。

但是django預設使用者模型類中沒有mobile欄位,所以要自定義使用者模型類。

如何自定義使用者模型類?

繼承自abstractuser(可通過閱讀django預設使用者模型類的原始碼得知)。

新增mobile欄位。

rom django.db import models

from django.contrib.auth.models import abstractuser

# create your models here.

class user(abstractuser):

"""自定義使用者模型類"""

mobile = models.charfield(max_length=11, unique=true, verbose_name='手機號')

class meta:

db_table = 'tb_users'

verbose_name = '使用者'

verbose_name_plural = verbose_name

def __str__(self):

return self.username

auth_user_model = 'auth.user'
結論:

django使用者模型類是通過全域性配置項 auth_user_model 決定的

配置規則:

auth_user_model = '應用名.模型類名'

指定本專案使用者模型類

auth_user_model = 'users.user'

2.遷移使用者模型類

cd 至manage.py檔案下執行

//建立遷移檔案

python manage.py makemigrations

//執行遷移檔案

python manage.py migrate

3.執行遷移檔案後mysql中生成資料項

No 58 60 自定義模型類

qstandarditemmodel是乙個通用的模型類 1 能夠以任意的方式組織資料 線性 非線性 2 資料組織的基本單位為資料項 qstandarditem 3 每乙個資料項能夠儲存多個資料狀態 附加資料角色 4 每乙個資料項能夠對資料狀態進行控制 可編輯,可選。組織結構如下 新型別引入 qvar...

使用者模型類 AbstractUser 介紹

建立使用者的方法 user user.objects.create user username,email,password,extra fields django 自帶使用者認證系統 它處理使用者賬號 組 許可權以及基於 cookie 的使用者會話 django 認證系統同時處理認證和授權 認證 ...

C 實現使用者自定義類

本例以自定義類 mystring 為例子,可以說,這是說接觸c 以來第一次覺得這語言好玩有趣的地方,感覺非常有微妙性!void fun1 int n case 2 case 3 int mystring countobj 0 int mystring getcountobj mystring mys...