我在python和flask中制作基于文本的浏览器游戏,但我遇到了一个奇怪的问题。
当我尝试在我的网站上登录时,我收到了一个错误的请求"错误。
这是我的登录路线:
b

这是我的登录模式:
@app.route('/login/', methods=['GET','POST'])
def login():
if current_user.is_authenticated:
return redirect("/game/", code=302)
# when the form is filled in
if request.method == 'POST':
# register the user
if request.form['regSubmit'] == 'regSubmit':
username = request.form['regUser']
password = request.form['regPassword']
address = request.form['regAddress']
register_user(username=username,password=password,address=address)
print(address)
return redirect("/login/", code=302)
# login user
if request.form['logSubmit'] == 'logSubmit':
print('lol')
username = request.form['logUser']
password = request.form['logPassword']
result = users.find_one({"user": username})
if result and check_password_hash(result['password'], password):
user_obj = User(result['_id'])
login_user(user_obj)
return redirect("/game/", code=302)
return render_template('out.html')

答案 0 :(得分:2)
我认为您的代码失败了,因为您尝试访问request.form['regSubmit']
,但您的表单中不存在此字段。访问不存在的任何表单字段将导致Flask返回400 Bad Request
错误。
要解决此问题,您可以提交登录信息并将操作注册到不同的Flask视图,也可以使用try...except
块来捕获通过尝试访问不存在而生成的KeyError
形式领域。