2016-05-04 6 views
-1

Ich habe folgende Route, die Werte aus einer vorgelegten FormBad Anforderungsfehler Kolben mit POST-Anfrage

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

Das Problem, das ich in renne bekommt ist, dass ich ein Bad Request The browser (or proxy) sent a request that this server could not understand. bekomme ich, dass ich überprüft habe Ich bekomme die Werte korrekt aus dem Formular, und dass alle Formulare Inhalt enthalten, aber es scheint nicht zu funktionieren.

Hier wird die Vorlage ist, dass die Ansicht

<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> 

und hier ist meine Ansicht Klasse, dass die Formulare sind auf

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

Sie haben einen Tippfehler: 'name = "Passwort"' hat ein Leerzeichen. – davidism

Antwort

0

99% der Zeit macht, ist dieser Fehler ein Schlüsselfehler verursacht indem Sie einen Schlüssel im request.form Dictionary anfordern, der nicht existiert. Um es zu debuggen, führen Sie

und stellen Sie sicher, dass jede Taste, die Sie anfordern, im Wörterbuch vorhanden ist. Dieser Fehler ist besonders frustrierend (und scheinbar mysteriös), weil er nicht die übliche Rückverfolgung auslöst, die Sie normalerweise in Flask erhalten.

Schauen Sie sich diese Fragen:

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

+0

Das ist, was ich ausgedruckt bekomme, aber ich rufe nur diese Werte an. ImmutableMultiDict ([('Benutzername', u'ralphie9224 '), (' Passwort ', u'MAVS.man1'), ('E-Mail', u'[email protected] ')]) – Rafa

+0

Ah. Verwenden Sie für alle Eingaben denselben Namen, aber fügen Sie andere Werte hinzu. So etwas wie: Wenn es funktioniert, werde ich meine Antwort bearbeiten. –