400错误的请求:KeyError:'用户名'

时间:2018-07-30 01:35:38

标签: python flask

在测试此代码时,出现错误“ 400 Bad Request:KeyError:'username'”,我无法弄清原因

这是代码,我正在使用flask进行操作

@app.route('/')
def index():
if 'username' in session:
    username = session['username']
    return 'Logged in as ' + username + '<br>' + \
     "<b><a href = '/logout'>click here to log out</a></b>"
return  "You are not logged in <br><a href = '/login'></b>" + \
  "click here to log in</b></a>"

@app.route('/login', methods = ['GET', 'POST'])
def login():
if request.method == 'POST':
    session['username'] = request.form['username']
    return redirect(url_for('index'))
return '''

<form action = "" method = "post">
<p><input type = text name = username/></p>
<p><input type = submit value = Login /></p>
</form>

'''
@app.route('/logout')
def logout():
#remove the session from username if it is there
session.pop('username', None)
return redirect(url_for('index'))

1 个答案:

答案 0 :(得分:1)

由于没有键username(最有可能在request.form块内的if request.method == 'POST'对象中),您将收到错误消息。这可能是因为您使用HTML创建表单的方式。您应该在字段属性两边加上引号,例如:

<form action="" method="post">
<p><input type="text" name="username" /></p>
<p><input type="submit" value="Login"/></p>
</form>