最近在写一个管理系统,在设计用户认证这一部分的时候遇到了不小的问题,主要是Django自带的登录认证的使用是建立在构造或者扩展User类的基础上。而在我自己设计的系统中,登录用户分为两类,一类是教师。一类是家长。因为自己并不熟悉auth模块,阅读了一些文档,但没有理解使用的方法,所以并没有使用auth模块,不过这次是因为时间紧张,下次有时间的时候会再继续研究Django的.
注册模块代码:
#注意,这里使用了我自己定义的Parent和Teacher类,只是记录一下写代码的过程,尽量不要copy使用
def register(request):user_state = ('register_state', '教师')user_nick = ('user_nick', '风吹屁屁凉')pas = ('pas', 'wozhua00')user_name = ('user_name', '江明泽')user_sex = ('user_sex','Male')user_tel = ('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 = ate(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 = ate(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 = ('user','风吹屁屁凉')pas = ('pas','wozhua00')loginState = ('loginState','教师')print(loginState)if loginState == '教师':tea_user = Teacher.objects.filter(tea_nickname__exact = user,tea_pas__exact= pas)if tea_user:#跳转到登陆后界面request.session['user'] = userresponse = render(request,'afterLogin.html',{'user':tea_user[0],'state':'tea'})return responseelse:return HttpResponse('登录失败,检查用户名密码')elif loginState == '家长':par_user = Parent.objects.filter(par_nickname__exact=user, par_password__exact=pas)if par_user:# 跳转到登陆后界面request.session['user'] = userresponse = render(request, 'afterLogin.html',{'user':par_user[0],'state':'par'})# response.set_cookie('username', user, 3600)return responseelse:return HttpResponse('登录失败,检查用户名密码')else:return HttpResponse('传递数据出错,请检查网络')
本文发布于:2024-02-03 08:57:15,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170692183549984.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |