Flask实现普通用户和管理员用户同页面登录
1.效果图
1.1前端登录页面
2.前端登录表单代码:
主要是设置用户登录身份的选择框
<form id="" action="/login" method="post">
<div class="reg-same">
<dl>
<dt>用户名:</dt>
<dd><input type="text" class="text" name="username" value="" id="userName" placeholder=""></dd>
</dl>
<dl>
<dt>密码:</dt>
<dd><input type="password" class="text" name="password" value="" id="userPassword" placeholder=""></dd>
</dl>
<dl>
<li id="role">
<dt>账号类型:</dt>
<dd> <label>求职学生</label><input type="radio" checked="checked" name="identype" value="student" />
<label>招聘企业</label><input type="radio" name="identype" value="com" />
<label>管理员</label><input type="radio" name="identype" value="admin" /></dd>
</li>
</dl>
<dl>
<dd>
<input type="submit" name="submit" id="loginBtn" value="登录">
</dd>
</dl>
</div>
</form>
3.后台接收表单代码
主要是接收用户名、密码、身份,判断用户登录身份,并进行不同操作
#实现学生、管理员、企业用户登录功能
@app.route('/login/',methods=['GET','POST'])
def login():
form = Login()
print("这里是登录页面")
if request.method == 'POST':
print("这里是学生登录页面")
user_info = request.form.to_dict()
print(user_info.get('identype'))
if user_info.get('identype')!= '':
if user_info.get('identype') == 'student':
#学生登录
user = Student.query.filter_by(stu_name=user_info.get('username'),pwd=user_info.get('password')).first()
if user is None:
# session['msg'] = '账号或密码错误!'
return redirect(url_for('login'))
else:
#login_user(user)
session['name'] = user.stu_name
print("学生登录测试:" + user.stu_name + " 成功登录")
return redirect(url_for('stu_main'))
elif user_info.get('identype') == 'com':
#企业登录
user = QYXX.query.filter_by(username=user_info.get('username'),pwd=user_info.get('password')).first()
if user is None:
# session['msg'] = '账号或密码错误!'
return redirect(url_for('login'))
else:
# login_user(user)
session['name'] = user.username
print("企业登录测试:" + user.username + " 成功登录")
return redirect(url_for('com_main'))
else:
#管理员登录
user = Admin.query.filter_by(admin_name=user_info.get('username'),admin_pwd=user_info.get('password')).first()
if user is None:
# session['msg'] = '账号或密码错误!'
return redirect(url_for('login'))
else:
# login_user(user)
session['name'] = user.admin_name
print("管理员登录测试:" + user.admin_name + " 成功登录")
return redirect(url_for('sup_main'))
return render_template('login_withChoose.html')