2018.12.30重新複習了登入與驗證
User模型
User模型是這個框架的核心部分。他的完整的路徑是在django.contrib.auth.models.User。以下對這個User物件做一個簡單瞭解:
欄位:
內建的User模型擁有以下的欄位:
1.username: 使用者名稱。150個字元以內。可以包含數字和英文字元,以及_、@、+、.和-字元。不能為空,且必須唯一!
2. first_name:歪果仁的first_name,在30個字元以內。可以為空。
3. last_name:歪果仁的last_name,在150個字元以內。可以為空。
4. email:郵箱。可以為空。
5. password:密碼。經過雜湊過後的密碼。
6. groups:分組。一個使用者可以屬於多個分組,一個分組可以擁有多個使用者。groups這個欄位是跟Group的一個多對多的關係。
7. user_permissions:許可權。一個使用者可以擁有多個許可權,一個許可權可以被多個使用者所有用。和Permission屬於一種多對多的關係。
8.is_staff:是否可以進入到admin的站點。代表是否是員工。
9.is_active:是否是可用的。對於一些想要刪除賬號的資料,我們設定這個值為False就可以了,而不是真正的從資料庫中刪除。
10.is_superuser:是否是超級管理員。如果是超級管理員,那麼擁有整個網站的所有許可權。
8. last_login:上次登入的時間。
9. date_joined:賬號建立的時間。
User模型的基本用法:
通過create_user方法可以快速的建立使用者。這個方法必須要傳遞
username、email、password。
示例程式碼如下:
`from django.contrib.auth.models import User user = User.objects.create_user('zhiliao','[email protected]','111111') # 此時user物件已經儲存到資料庫中了。當然你還可以繼續使用user物件進行一些修改 user.last_name = 'abc' user.save()`
建立超級使用者:
建立超級使用者有兩種方式。第一種是使用程式碼的方式。用程式碼建立超級使用者跟建立普通使用者非常的類似,只不過是使用create_superuser。示例程式碼如下:
python manage.py createsuperuser
後面就會提示你輸入使用者名稱、郵箱以及密碼。
修改密碼:
因為密碼是需要經過加密後才能儲存進去的。所以如果想要修改密碼,不能直接修改password欄位,而需要通過呼叫set_password來達到修改密碼的目的。示例程式碼如下:
from django.contrib.auth.models import User user = User.objects.get(pk=1) user.set_password('新的密碼') user.save()
登入驗證:
Django的驗證系統已經幫我們實現了登入驗證的功能。通過django.contrib.auth.authenticate即可實現。這個方法只能通過username和password來進行驗證。示例程式碼如下:
from django.contrib.auth import authenticate
user = authenticate(username='zhiliao', password='111111')
# 如果驗證通過了,那麼就會返回一個user物件。
if user is not None:
# 執行驗證通過後的程式碼
else:
# 執行驗證沒有通過的程式碼。