user 表 構成
系統自動生成的表結構如下:
id : 序號
password : 密碼
last_login : 最後一次登入
is_superuser: 是否是超級使用者
username : 使用者名稱
first_name :姓
last_name : 名
email : 郵箱
is_staff : 是否是員工,
is_active : 是否啟用
date_joined : 註冊時間
擴充套件使用者表 – 自定義使用者表 userprofile
from django.contrib.auth.models import abstractuser
class userprofile(abstractuser):
nick_name = models.charfield('暱稱',max_length=50,default='')
...
過載 auth_user_model
案例: auth_user_model = 'users.userprofile'
直接 編寫 登入驗證介面 檢視,
# 獲取使用者提交的使用者名稱和密碼
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()增加 forms 進行驗證
先建 forms.py
from django import forms
class loginform(forms.form):
username = forms.charfield(required=true)
password = forms.charfield(required=true, min_length=5)
檢視函式增加 form 驗證:
# 獲取使用者提交的使用者名稱和密碼
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()
else:
return jsonresponse()增加支援 郵箱 登入驗證
from django.contrib.auth.backends import modelbackend
from .models import userprofile
from django.db.models import q
#郵箱和使用者名稱都可以登入
# 基礎modelbackend類,因為它有authenticate方法
class custombackend(modelbackend):
def authenticate(self, request, username=none, password=none, **kwargs):
try:
# 不希望使用者存在兩個,get只能有乙個。兩個是get失敗的一種原因 q為使用並集查詢
user = userprofile.objects.get(q(username=username)|q(email=username))
# django的後台中密碼加密:所以不能password==password
# userprofile繼承的abstractuser中有def check_password(self, raw_password):
if user.check_password(password):
return user
except exception as e:
return none
顯示table欄位資料
select case when a.colorder 1 then d.name else end 表名,a.colorder 字段序號,a.name 欄位名,case when columnproperty a.id,a.name,isidentity 1 then else end 標識,ca...
BLOB欄位資料讀取
因為開發的時候公司的專案,所以只能說明不能截圖了,在這裡請大家諒解。blob這個字段,首先是存大資料的,本人倒是不建議在資料庫中存入那麼大的資料,影響伺服器效能。而且如果表沒有採用分布儲存,沒有考慮維護,一段時間就會很大,本人一點見解,表大小超過1g的容量時候,明顯影響資料讀取速度。這個扯的有點遠了...
django使用者資訊擴充套件
django封裝了好多東西,拿來用就可以了,幫我們封裝類使用者的登入認證,使用者的表 所以django自帶有使用者表,當擴充套件使用者表後一些表就會被替換 使用者認證相關的 功能放在 django.contrib.auth 的乙個主要處理使用者資訊,許可權,認證 django遵循 開閉原則 所以不修...