@blue.route('/login/',methods = ['GET','POST'])
def my_login():
if request.method == 'GET':
return render_template('login.html')
if request.method == 'POST':
# 获取提交的参数
username = request.form.get('username')
password =request.form.get('passwod')
# 在数据库中检验用户名是否存在,并把user对象取出来
user = User.query.filter(User.name == username).first()
if user:
if check_password_hash(user.password,password):
login_user(user)
return redirect(url_for('first.my_index'))
登录后,提示:
TypeError: a bytes-like object is required, not ‘NoneType’
解决方案:
看完这个错误,第一反应是不是程序哪个字段或传参时的类型写错了,结果恰恰不是,而是获取提交参数时,字段名与页面定义的字段名不匹配造成的(所以建议大家这些定义的字段名尽量粘贴过来,不然当你少打一个字母,你再看着错误提示,就会让你一脸懵逼)。如下图: