2017-11-10 3 views
0

Ich versuche, eine Schaltfläche in Sida2 führen mich zu Resultat und posten die Informationen namens MJ aus dem Eingabeformular, aber ich bekomme einen Fehler 404 Die angeforderte URL wurde nicht gefunden der Server und ich verstehe nicht warum. Dies ist der HTML-Teil:404 nicht gefunden "angeforderte URL wurde nicht gefunden"

<form action="/sida2/resultat.html" method="POST"> 
<input title="" placeholder="MJ/kq foder" type="text" name="MJ" required> 
<br> 
<button type="submit">Submit</button> 
</form> 

Und dies ist der Python Teil:

from flask import Flask, render_template, request 

app=Flask(__name__) 

@app.route('/') 
def home(): 
    return(render_template("hemsida.html")) 


@app.route('/sida2/', methods=['POST', 'GET']) 
def sida2(): 
    return(render_template("andrasidan.html")) 


@app.route('/sida2/resultat', methods=['POST']) 
def resultat():  
    if request.method=='POST':  
     mj= request.form["MJ"] 



    return(render_template("resultat.html")) 

if __name__ =="__main__": 
    app.run(debug=True) 

Ich gehe davon aus, es ist etwas offensichtlich fehle ich, aber ich kann einfach nicht scheinen, um es zu finden.

+2

Sieht so aus, als würde Ihre Form 'aktion' den'/sida1/resultat' Endpunkt treffen, nicht die '.html' Datei. –

Antwort

2

Verwenden Sie url_for, um URLs zu Flask-Ansichten zu generieren. Die gewünschte Ansicht ist resultat.

<form action="{{ url_for('resultat') }}" method="POST"> 

Dies wird die entsprechende URL für Ihre resultat() Funktion generieren:

@app.route('/sida2/resultat', methods=['POST']) 
def resultat(): 

Die URL, die Sie in Ihrem Formular Aktion haben (/sida2/resultat.html) wird nicht funktionieren, wie Sie Ihren Code an die URL bindet /sida2/resultat statt.

Für einen schnellen Überblick über die Vorteile, warum Sie url_for über Hardcoding Ihrer URLs verwenden sollten, finden Sie the Flask quickstart section on the topic.

Verwandte Themen