Django學習筆記(6-2 使用者登入-2)
- 兩個login
def login(request):
......
if user is not None:
#這裡會報錯,因為有兩個login,所以很重要的一點,函式名稱不要和預設名稱一樣。否則就會使用混亂。否則就要寫全路徑
#這也說明了python的函式可以自己呼叫自己
login(request,user)
return render(request,"index.html")
else:
return render(request,"login.html")
......
改為
def user_login(request):
在session有效期內,即使沒有登陸也會自動登陸
- 自定義後臺auth的認證方法
重寫authenticate,以後user_login函式里面的authenticated驗證就是我們自己寫的了,而也不用更改user_login方法
from django.contrib.auth.backends import ModelBackend
from .models import UserProfile
class CustomBackend(ModelBackend):
def authenticate(self,username=None,password=None,**kwargs):
try:
user = UserProfile.objects.get(username=username)
#password是密文,so,不能password=password,因為使用者輸入的是明文呀
#userprofile繼承了adstractuser,所以有個check_password方法
if user.check_password(password):
return user
except Exception as e:
return None
- 把自定義的驗證邏輯註冊
setting.py
AUTHENTICATION_BACKENDS = (
‘users.views.CustomBackend',
#注意一定要加“,”特別是元組資料的時候
)
- 讓email也可以登陸
現在就可以在自定義的au裡面寫點自己的邏輯了
user = UserProfile.objects.get(username=username,)
#,是並集
username和eamil登陸是“或”關係,現在介紹Q
user = UserProfile.objects.get(Q(username=username)|Q(email=username),Q(password=password))
#並非全是並集,而是並集與交集的隨意排版
#把password去掉
user = UserProfile.objects.get(Q(username=username)|Q(email=username))
- 提示登陸錯誤
def login(request):
......
if user is not None:
login(request,user)
return render(request,"index.html")
else:
return render(request,"login.html",{"msg":"使用者名稱或密碼錯誤"})
......
{{ msg }}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/506/viewspace-2799295/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Django學習筆記(16)——擴充套件Django自帶User模型,實現使用者註冊與登入Django筆記套件模型
- Django book2 模型 學習筆記Django模型筆記
- django學習筆記Django筆記
- django book2 表單學習筆記Django筆記
- 登入抓包逆向分析學習筆記筆記
- Django Book 學習筆記(上)Django筆記
- Django Book學習筆記(下)Django筆記
- [python]django學習筆記 二PythonDjango筆記
- Django學習筆記—驗證碼Django筆記
- Django之hello world - Django入門學習教程2Django
- substrate學習筆記2:substrate快速入門筆記
- Mysql學習筆記2--使用入門MySql筆記
- Django筆記三十二之session登入驗證操作Django筆記Session
- django rest framework個人學習筆記(四)————Tutorial2.Request and ResponseDjangoRESTFramework筆記
- Django學習筆記(12)——分頁功能Django筆記
- Django學習筆記(15)——中介軟體Django筆記
- Laravel——Web 實戰第三章註冊登入(2)(學習筆記)LaravelWeb筆記
- vue-admin-template 學習筆記 登入實現Vue筆記
- Django學習筆記(13)——Django的使用者認證元件,檢視層和QuerySet APIDjango筆記元件API
- Vue學習筆記2Vue筆記
- MySQL學習筆記2MySql筆記
- RocketMQ學習筆記 2MQ筆記
- Oracle學習筆記2Oracle筆記
- react學習筆記2React筆記
- mysql學習筆記-2MySql筆記
- jQuery學習筆記(2)jQuery筆記
- Scala學習筆記2筆記
- TestNG—學習筆記2筆記
- autolayout學習筆記_2筆記
- vue學習筆記-2Vue筆記
- 學習筆記2(下)筆記
- Django2學習筆記--引用本地靜態檔案css,js等Django筆記CSSJS
- Latex排版學習筆記(2)——Latex新手入門教程筆記
- 《深度學習入門》第 2 章 感知機 筆記深度學習筆記
- JavaScript入門學習學習筆記(上)JavaScript筆記
- Django學習筆記《二》圖書管理系統Django筆記
- Django之“學習筆記”網站開發1Django筆記網站
- koa2學習筆記筆記