日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

Django默认用户认证系统和用户模型类

發布時間:2024/9/30 windows 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Django默认用户认证系统和用户模型类 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Django默認用戶認證系統和用戶模型類

1.Django默認用戶認證系統

Django自帶用戶認證系統

Django認證系統位置

Django認證系統同時處理認證和授權

Django認證系統包含的內容

2.Django默認用戶模型類

Django認證系統中提供了用戶模型類User保存用戶的數據。

Django認證系統用戶模型類位置

父類AbstractUser介紹

3.?自定義用戶模型類

為什么要自定義用戶模型類??

1.Django默認用戶認證系統

  • Django自帶用戶認證系統

    • 它處理用戶賬號、組、權限以及基于cookie的用戶會話。
  • Django認證系統位置

    • django.contrib.auth包含認證框架的核心和默認的模型。
    • django.contrib.contenttypes是Django內容類型系統,它允許權限與你創建的模型關聯。
  • Django認證系統同時處理認證和授權

    • 認證:驗證一個用戶是否它聲稱的那個人,可用于賬號登錄。
    • 授權:授權決定一個通過了認證的用戶被允許做什么。
  • Django認證系統包含的內容

    • 用戶:用戶模型類、用戶認證。
    • 權限:標識一個用戶是否可以做一個特定的任務,MIS系統常用到。
    • 組:對多個具有相同權限的用戶進行統一管理,MIS系統常用到。
    • 密碼:一個可配置的密碼哈希系統,設置密碼、密碼校驗。

2.Django默認用戶模型類

  • Django認證系統中提供了用戶模型類User保存用戶的數據。

    • User對象是認證系統的核心。
  • Django認證系統用戶模型類位置

    • django.contrib.auth.models.User

  • 父類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字段。
from 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_namedef __str__(self):return self.username

?

總結

以上是生活随笔為你收集整理的Django默认用户认证系统和用户模型类的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。