Django User模型擴充套件實現登入認證

2021-09-22 12:34:09 字數 1668 閱讀 1635

1.由於django auth自帶user模型字段有限,我們需要擴充套件自定義模型userprofile

django auth自帶user模型包含字段

username:使用者名稱

email: 電子郵件

password:密碼

first_name:名

last_name:姓

is_active: 是否為活躍使用者。預設是true

is_staff: 是否為員工。預設是false

is_superuser: 是否為管理員。預設是false

date_joined: 加入日期。系統自動生成。

2.擴充套件user模型

# 匯入擴充套件模型類

from django.contrib.auth.models import abstractuser

# 繼承類

class userprofile(abstractuser):

"""使用者模型

添家字段

"""***_choices = (

(0, '男'),

(1, '女')

)phone = models.charfield(max_length=11, verbose_name="手機號")

age = models.charfield(max_length=11, verbose_name="年齡")

*** = models.smallintegerfield(choices=***_choices, verbose_name="性別")

'django.contrib.admin',

'django.contrib.auth',

'django.contrib.contenttypes',

'django.contrib.sessions',

'django.contrib.messages',

'django.contrib.staticfiles',

'users',

] 4.資料庫遷移

python manage.py makemigrations

python manage.py migrate

5.在settings中新增

auth_user_model = 'users.userprofile'
6登入認證

class loginview(view):   

def post(self,request):

# 獲取使用者提交的使用者名稱和密碼

user_name = request.post.get('username', none)

pass_word = request.post.get('password', none)

# 成功返回user物件,失敗none

user = authenticate(username=user_name, password=pass_word)

# 如果不是null說明驗證成功

if user is not none:

# 登入

login(request, user)

return jsonresponse()

else:

return jsonresponse()

Python selenium的js擴充套件實現

python寫的資料採集,對一般有規律的頁面用 urllib2 beautifulsoup 正則就可以搞定。但是有些頁面的內容是通過js生成,或者通過js跳轉的,甚至js中還加入幾道混淆機制 對這種涉及頁面指令碼解析的內容,前面的方式便很無力。這時我們需要能解析 執行js的引擎 瀏覽器,而pytho...

162 擴充套件User模型 使用Proxy模型

django內建的user模型雖然已經足夠強大了,但是有時候還是不能滿足我們的需求,比如在驗證使用者登入的時候,它用的是使用者名稱作為驗證,而我們有時候需要通過手機號碼或者是郵箱進行驗證,還有比如我們想要增加一些字段,那麼這時候我們就需要擴充套件使用者模型了,擴充套件使用者模型有多種方式。1.設定p...

樹模型與線性模型的融合模型 Python實現

目錄 一 樹模型與線性模型的融合模型 二 python sklearn實現gbdt lr融合模型 樹模型gbdt原理 線性模型lr原理 海量的離散特徵 線性模型lr,因其較高的精度和較少的運算開銷在業界廣為使用。線性模型lr無法捕捉到非線性特徵對標籤的影響,因而提公升線性模型精度的有效方法是構造有效...