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...