Django認證系統(tǒng)user對象實現(xiàn)過程解析
User對象
User對象是認證系統(tǒng)的核心。它們通常表示與你的站點進行交互的用戶,并用于啟用限制訪問、注冊用戶信息和關(guān)聯(lián)內(nèi)容給創(chuàng)建者等。在Django的認證框架中只存在一種類型的用戶,因此諸如'superusers'或管理員'staff'用戶只是具有特殊屬性集的user對象,而不是不同類型的user對象。
創(chuàng)建users
創(chuàng)建users最直接的方法是使用create_user()輔助函數(shù):
>>> from django.contrib.auth.models import User >>> user = User.objects.create_user('john', 'lennon@thebeatles.com', 'johnpassword')
from django.contrib.auth.models import User def create_user(request): #auth_user # user = User.objects.create_user('john', 'lennon@thebeatles.com', 'johnpassword') #superuser python manage.py createsuperuser --username=joe --email=joe@example.com u = User.objects.get(username='john') u.set_password('new password') u.save() return HttpResponse("success-----%s"%u)
創(chuàng)建成功后見數(shù)據(jù)庫auth_user表
創(chuàng)建superusers
使用createsuperuser命令創(chuàng)建superusers:
$ python manage.py createsuperuser --username=joe --email=joe@example.com
或者
$ python manage.py createsuperuser
接下來依次輸入用戶密碼即可
成功后見auth_user表
修改密碼
>>> from django.contrib.auth.models import User >>> u = User.objects.get(username='john') >>> u.set_password('new password') >>> u.save()
成功后見auth_user表,密碼已經(jīng)改變
認證Users
authenticate(**credentials)[source]
認證一個給定用戶名和密碼,請使用authenticate()。它以關(guān)鍵字參數(shù)形式接收憑證,對于默認的配置它是username和password,如果密碼對于給定的用戶名有效它將返回一個User對象。如果密碼無效,authenticate()返回None。例子:
from django.contrib.auth import authenticate user = authenticate(username='john', password='secret') if user is not None: # the password verified for the user if user.is_active: print() else: print() else: # the authentication system was unable to verify the username and password print()
def auth(request): user = authenticate(username='john', password='new password')#john # user = authenticate(username='john', password='johnpassword')#None print(user) if user is not None: # the password verified for the user if user.is_active: print("驗證成功,已激活") else: print("驗證成功,未激活") else: # the authentication system was unable to verify the username and password print("沒有此用戶") return HttpResponse(user)
john
驗證成功,已激活
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
anaconda中安裝的python環(huán)境中沒有pip3的問題及解決
這篇文章主要介紹了anaconda中安裝的python環(huán)境中沒有pip3的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-02-02python selenium實現(xiàn)發(fā)送帶附件的郵件代碼實例
這篇文章主要介紹了python selenium實現(xiàn)發(fā)送帶附件的郵件代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-12-12python 數(shù)字轉(zhuǎn)換為日期的三種實現(xiàn)方法
在Python中,我們經(jīng)常需要處理日期和時間,本文主要介紹了python 數(shù)字轉(zhuǎn)換為日期的三種實現(xiàn)方法,包含datetime模塊,strftime方法及pandas庫,具有一定的參考價值,感興趣的可以了解一下2024-02-02Flask創(chuàng)建并運行數(shù)據(jù)庫遷移的實現(xiàn)過程
Flask創(chuàng)建并運行數(shù)據(jù)庫遷移的過程是一個涉及多個步驟的操作,旨在幫助開發(fā)者在開發(fā)過程中管理數(shù)據(jù)庫模式的變化,而不需要手動地刪除和重建數(shù)據(jù)庫表,從而避免數(shù)據(jù)丟失,以下是一個詳細的步驟說明,需要的朋友可以參考下2024-09-09