''' 今天傻逼了,整理了好久的筆記,結果由於更新了navigate,忘記保存重啓,內存清空,數據都丟了,因此我先把今天所學的知識,大致講一下,週末再具體進行補充。 ''' #auth模塊主要就是圍繞用戶表,完成用戶登陸註冊,修改密碼,添加字段等做用的,能夠加語法糖,全局,局部配置, #而後能夠用auth模塊能夠對字段進行擴充,就是繼承,再加個配置 1.auth模塊 用auth模塊 你就用全套 不是本身寫一部分 用別人一部分 如何建立超級用戶 用於登陸django admin的後臺管理 createsuperuser 校驗用戶是否存在 user_obj = auth.authenticate(username=username,password=password) # 返回的是數據對象 沒有返回None 保存用戶登陸狀態 auth.login(request,user_obj) # 執行完這一句以後 只要是可以拿到request的地方 # 均可以經過request.user獲取到當前登陸用戶對象 判斷當前用戶是否登陸 request.user.is_authenticated() 獲取當前用戶數據對象 request.user 如何給視圖函數加上校驗用戶是否登陸的校驗 from django.contrib.auth.decorators import login_required # @login_required(login_url='/xxx/') # 局部配置 @login_required # 全局配置 def home(request): return HttpResponse('home頁面') # 當用戶沒有登陸的狀況下 跳轉的url有兩種配置方式 1.在裝飾器括號內經過login_url參數局部指定 2.全局配置 用戶沒有登陸的狀況下 全部的視圖統一跳轉到一個url 配置文件中 LOGIN_URL = '/login/' 修改密碼 校驗原密碼是否正確 is_right = request.user.check_password(old_password) 設置新密碼 request.user.set_password(new_password) request.user.save() 用戶註冊 from django.contrib.auth.models import User 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_user表的字段 第一種(很差用) 利用一對一表關係 擴展字段 第二種(繼承) 1.本身寫一個默寫類 繼承原來的auth_user類 而後在settings配置文件中 告訴django使用你新建的類來替代auth_user表 from django.db import models 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) 2.必定要在settings配置文件中指定 AUTH_USER_MODEL = 'app01.Userinfo' # 固定語法: AUTH_USER_MODEL = '應用名.表名' """ 經過上面的方式 繼承的表 還能夠繼續使用auth模塊全部的功能 """ 舒適提示 當你須要些用戶相關的功能的時候能夠考慮使用auth模塊
更多介紹請戳 Auth認證模塊html
""" 思路: 首先,中間件就是一個多重防護的保安,對內能夠實現全局的操做,對外能夠根據須要篩選請求,基於前一個功能,咱們自定義了一箇中間件,主要功能就是要 暫停某個功能的使用,只須要在配置文件中註釋掉相關的模塊語句就能夠了(就像以前的csrf同樣) """
代碼連接自定義中間件python