2016-05-04 2 views
-1

У меня есть следующий маршрут, который получает значения из представленной формыНеверный запрос ошибки колба с запросом POST

@app.route('/authenticate', methods=["POST"]) 
def authenticate(): 
    username = request.form['username'] 
    print(username, file = sys.stderr) 

    password = request.form['password'] 
    email = request.form['email'] 

    models.User.create_user(email, password, username) 

    return render_template('signup.html') 

Проблема я бегу в том, что я получаю Bad Request The browser (or proxy) sent a request that this server could not understand. я проверил, что я я правильно получаю значения из формы и что у всех форм есть контент в них, но это не работает.

Вот шаблон, который генерирует представление

<form action ="/authenticate" method="POST" id="signup"> 
       <fieldset class="form-group"> 
        <label for="InputUsername"> Username </label> 
        <input type="text" class="form-control" name="username" id="InputUsername" placeholder="Enter username"> 
       </fieldset> 
       <fieldset class="form-group"> 
        <label for="exampleInputEmail1">Email address</label> 
        <input type="email" class="form-control" name="email"id="exampleInputEmail1" placeholder="Enter email"> 
        <small class="text-muted">We'll never share your email with anyone else.</small> 
        </fieldset> 
        <fieldset class="form-group"> 
        <label for="exampleInputPassword1">Password</label> 
        <input type="password" class="form-control" name="password "id="exampleInputPassword1" placeholder="Password"> 
       </fieldset> 
      </form> 

и вот мой вид класса, что формы на

@app.route('/signup') 
def login(): 
    return render_template("signup.html") 
+0

У вас есть опечатка: 'имя = "пароль"' имеет замыкающий пробел. – davidism

ответ

0

99% времени, то эта ошибка является одним из ключевых ошибка, вызванная запросив ключ в словаре request.form, который не существует. Чтобы отладить его, запустите

print(request.form) 

и убедитесь, что каждая запрошенная вами клавиша присутствует в словаре. Эта ошибка особенно неприятна (и, по-видимому, таинственная), потому что она не вызывает обычную трассировку, которую вы обычно получаете в Flask.

Заканчивать эти вопросы:

What is the cause of the Bad Request Error .. ?
Form sending error, Flask

+0

Это то, что я распечатываю, но я называю только эти ценности. ImmutableMultiDict ([('username', u'ralphie9224 '), (' password ', u'MAVS.man1'), ('email', u'[email protected] ')]) – Rafa

+0

Ah. Используйте одно и то же имя для всех входов, но добавляйте разные значения. Что-то вроде этого: Если это сработает, я отредактирую свой ответ. –

Смежные вопросы