Я продолжаю получать BadRequestKeyError 400, и я не знаю, почему

Боковая маршрутизация Python

@app.route("/loginC", methods=["POST"])
def loginPage():
    valid = request.form["idnumber"]
    if valid is not None: #Creating A New User
        username = request.form["username"]
        password = request.form["password"]
        firstname = request.form["firstname"]
        lastname = request.form["lastname"]
        idnumber = request.form["idnumber"]
        logins["'"+username+"'"] = {"password":"'"+ password +"'", "firstname":"'"+ firstname +"'", "lastname":"'"+ lastname +"'", "idnumber":"'"+ idnumber +"'"}
        session["currentUser"] = username
        isLogin = True
        return redirect("/login")
    else:
        username = request.form["username"]
        password = request.form["password"]
        for account in logins:
            if username == logins:
                if logins["'"+username+"'"]["password"] == password:
                    session["currentUser"] = username
                    isLogin = True
                    return redirect("/login")
        return redirect("/login")

HTML

<form action="/loginC" class="formLogin" method="post">
      <h3>Existing User</h3>
      Username: <input type="text" name="username" placeholder="username" required><br>
      Password: <input type="password" name="password" placeholder="password" required><br>
      <input type="submit" value="Login">
</form>
   <br>
   <hr class="formLogin">
   <br>
<form action="/loginC" class="formLogin" method="post">
      <h3>New User</h3>
      Username: <input type="text" name="username" placeholder="username" required><br>
      Password: <input type="password" name="password" placeholder="password" required> <br>
      Firstname: <input type="text" name="firstname" placeholder="firstname" required><br>
      Lastname: <input type="text" name="lastname" placeholder="lastname" required><br>
      Student ID: <input name="idnumber" type="text" placeholder="ID number" required><br>
      <input type="submit" value="Create">
</form>

Я продолжаю получать сообщение об ошибке: "werkzeug.exceptions.BadRequestKeyError: 400 Bad Request: браузер (или прокси-сервер) отправил запрос, который этот сервер не может понять. KeyError: 'idnumber'"

он запрашивает форму во второй скобке, также известной как скобка «новый пользователь».


person Will Layton    schedule 24.03.2020    source источник


Ответы (1)


На месте :

valid = request.form["idnumber"]

Изменить на:

Если вы хотите получить данные POST:

valid = request.form.get("idnumber")

Если вы хотите получить данные GET (строка запроса):

valid = request.args.get("idnumber")

Также: Изменить метод на

@app.route("/loginC", methods=["GET", "POST"])
person Shivendra Pratap Kushwaha    schedule 24.03.2020