用auth模塊 就必定要用它自己提供的一些查詢,檢索,修改,校驗的方法python
如何建立超級用戶 用於登陸django admin的後臺管理 createsuperuser createuser #普通用戶
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')
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): ..
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 = '應用名.表名'