【问题标题】:400 Bad Request: KeyError: 'username'400 错误请求:KeyError:“用户名”
【发布时间】:2018-07-30 01:35:38
【问题描述】:

在测试此代码时,我收到错误“400 Bad Request: KeyError: 'username'”,我不知道为什么

这是代码,我正在使用烧瓶来做这个

@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'))

【问题讨论】:

  • 为什么不在 html 代码中的值(如“用户名”)周围添加任何 "

标签: python flask


【解决方案1】:

您收到错误是因为没有键 username,很可能在 if request.method == 'POST' 块内的 request.form 对象中。这可能是因为您在 HTML 中创建表单的方式。您应该在字段属性周围加上引号,例如:

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

【讨论】:

  • 这个成功了,非常感谢,原来只是我不够努力
猜你喜欢
  • 2019-12-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多