2012-08-29 10 views
41

Ich fange gerade an, Flask zu lernen, und ich versuche, ein Formular zu erstellen, das eine POST-Methode ermöglicht. Hier ist meine Methode:Flask - POST Error 405 Methode nicht zulässig

@app.route('/template', methods=['GET', 'POST']) 
def template(): 
    if request.method == 'POST': 
     return "Hello" 
    return render_template('index.html') 

Und mein index.html:

<html> 
    <head> 
    <title> Title </title> 
    </head> 
    <body> 
    Enter Python to execute: 
    <form action="/" method="post"> 
     <input type="text" name="expression" /> 
     <input type="submit" value="Execute" /> 
    </form> 
    </body> 
</html> 

die Form Loading (Rendering es, wenn es erhält GET) funktioniert gut. Wenn ich jedoch auf den Submit-Button klicke, erhalte ich einen POST 405 Fehler Method Not Allowed. Warum wird es nicht angezeigt Hallo?

Antwort

32

Ihre Form ist / Vorlage, wenn das Verfahren für /template geleitet wird, es sei denn, dass ein Tippfehler ist, sollten Sie Ihre Form des action Attribut anpassen an der template Ansicht Punkt: action="{{ url_for('template') }}"

11

ersetzen:

<form action="/" method="post"> 

mit:

<form action="{{ url_for('template') }}" method="post"> 
4

Wenn Sie dieauslassen-Attribut wird das Formular an die aktuelle URL gesendet.

ersetzen:

<form action="/" method="post"> 

mit:

<form method="post"> 
Verwandte Themen