1. 程式人生 > >Django開發幼兒園管理系統---實現註冊、登入功能

Django開發幼兒園管理系統---實現註冊、登入功能

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('傳遞資料出錯,請檢查網路')