Django開發幼兒園管理系統---實現註冊、登入功能
阿新 • • 發佈:2019-02-14
Django搭建問題—–使用者認證問題
最近在寫一個管理系統,在設計使用者認證這一部分的時候遇到了不小的問題,主要是Django自帶的登入認證的使用是建立在構造或者擴充套件User類的基礎上。而在我自己設計的系統中,登入使用者分為兩類,一類是教師。一類是家長。因為自己並不熟悉auth模組,閱讀了一些文件,但沒有理解使用的方法,所以並沒有使用auth模組,不過這次是因為時間緊張,下次有時間的時候會再繼續研究Django的.
註冊模組程式碼:
#注意,這裡使用了我自己定義的Parent和Teacher類,只是記錄一下寫程式碼的過程,儘量不要copy使用
def register(request) :
user_state = request.POST.get('register_state', '教師')
user_nick = request.POST.get('user_nick', '風吹屁屁涼')
pas = request.POST.get('pas', 'wozhua00')
user_name = request.POST.get('user_name', '江明澤')
user_sex = request.POST.get('user_sex','Male')
user_tel = request.POST.get('user_tel' , '110')
parent = Parent.objects.filter(par_nickname=user_nick)
teacher = Teacher.objects.filter(tea_nickname=user_nick)
if(parent or teacher):
return HttpResponse('使用者名稱已被註冊')
if(user_state == '家長'):
user = Parent.objects.create(par_nickname=user_nick,par_password=pas,par_sex=user_sex,par_name=user_name,par_tel=user_tel)
user.save()
return render(request,'login.html')
elif(user_state == '教師'):
tea = Teacher.objects.create(tea_nickname=user_nick,tea_pas=pas,tea_sex=user_sex,tea_name=user_name,tea_tel=user_tel)
tea.save()
return render(request,'login.html')
else:
return HttpResponse('傳遞資料出錯,請檢查網路')`
登入模組程式碼
#注意,這裡使用了我自己定義的Parent和Teacher類,只是記錄一下寫程式碼的過程
def login(request):
user = request.POST.get('user','風吹屁屁涼')
pas = request.POST.get('pas','wozhua00')
loginState = request.POST.get('loginState','教師')
print(loginState)
if loginState == '教師':
tea_user = Teacher.objects.filter(tea_nickname__exact = user,tea_pas__exact= pas)
if tea_user:
#跳轉到登陸後介面
request.session['user'] = user
response = render(request,'afterLogin.html',{'user':tea_user[0],'state':'tea'})
return response
else:
return HttpResponse('登入失敗,檢查使用者名稱密碼')
elif loginState == '家長':
par_user = Parent.objects.filter(par_nickname__exact=user, par_password__exact=pas)
if par_user:
# 跳轉到登陸後介面
request.session['user'] = user
response = render(request, 'afterLogin.html',{'user':par_user[0],'state':'par'})
# response.set_cookie('username', user, 3600)
return response
else:
return HttpResponse('登入失敗,檢查使用者名稱密碼')
else:
return HttpResponse('傳遞資料出錯,請檢查網路')