Python Flask糟糕的请求

时间:2017-03-25 20:43:00

标签: python flask flask-login

我在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')




1 个答案:

答案 0 :(得分:2)

我认为您的代码失败了,因为您尝试访问request.form['regSubmit'],但您的表单中不存在此字段。访问不存在的任何表单字段将导致Flask返回400 Bad Request错误。

要解决此问题,您可以提交登录信息并将操作注册到不同的Flask视图,也可以使用try...except块来捕获通过尝试访问不存在而生成的KeyError形式领域。