auth用戶認證模塊

auth模塊

用auth模塊 就必定要用它自己提供的一些查詢,檢索,修改,校驗的方法python

自帶的admin管理後臺中建立管理員用戶,普通用戶

(tools菜單中的run manager.py選項下輸入)
如何建立超級用戶 用於登陸django admin的後臺管理
    createsuperuser
    
    createuser  #普通用戶

auth基本使用語法

(views.py中)
from django.contrib import auth
from django.contrib.auth.models import User

校驗用戶是否存在
user_obj = auth.authenticate(username=username,password=password)  # 返回的是數據對象
                                                                   # 沒有返回None
# is_alive = User.objects.filter(username=username) #經過orm查找


#保存用戶登陸狀態
auth.login(request,user_obj)# 執行完這一句以後 只要是可以拿到request的地方 
                            # 均可以經過request.user獲取到當前登陸用戶對象
    
            """該方法會主動幫你操做session表 而且只要執行了該方法
            你就能夠在任何位置經過request.user獲取到當前登陸的用戶對象
            """

# 簡單快捷的判斷用戶是否登陸        
print(request.user.is_authenticated())  


# 校驗原密碼對不對
is_right = request.user.check_password(old_password)


# 修改密碼
request.user.set_password(new_password)  # 僅僅只會在內存中產生一個緩存 並不會直接修改數據庫
request.user.save()  # 必定要點save方法保存 才能真正的操做數據庫

# User.objects.create(username=username,password=password)  
# 不用使用create 密碼會直接存成明文

# 建立普通用戶
User.objects.create_user(username=username,password=password)  
  
# 建立超級用戶  郵箱字段必須填寫  
User.objects.create_superuser(username=username,password=password,email='123@qq.com')

auth模塊自帶登錄裝飾器

(views.py中)
from django.contrib.auth.decorators import login_required

# @login_required(login_url='/login/')  # 局部配置,直接加在函數上,和普通裝飾器同樣

# auth校驗用戶是否登陸 全局配置跳轉url
LOGIN_URL = '/login/'   #在setings.py中加入

@login_required
def set_password(request):
    ..

當咱們使用auth用戶認證模塊,在表中想要加字段能夠繼承AbstractUser來實現,自動生成User也是繼承了這個.

(models.py中)
from django.contrib.auth.models import AbstractUser
# Create your models here.

class Userinfo(AbstractUser):
    """
    強調 你繼承了AbstractUser以後 你自定義的表中 字段不能跟原有的衝突
    """
    phone = models.BigIntegerField()
    avatar = models.FileField()
    register_time = models.DateField(auto_now_add=True)


# auth自定義表配置  (在settings.py任意位置加入)
AUTH_USER_MODEL = 'app01.Userinfo'
# 固定語法: AUTH_USER_MODEL = '應用名.表名'
相關文章
相關標籤/搜索