2012-08-29 24 views
41

Właśnie zaczynam uczyć się Flasku i próbuję utworzyć formularz, który pozwoli na zastosowanie metody POST. Oto moja metoda:Flask - Błąd POST 405 Metoda niedozwolona

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

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

Ładowanie formularza (czyniąc go po otrzymaniu GET) działa poprawnie. Kiedy klikam przycisk przesyłania, otrzymuję jednak metodę POST 405 error not Allowed. Dlaczego nie jest wyświetlany Witaj?

Odpowiedz

32

Twoja forma jest złożenie do / gdy metoda jest kierowany do /template chyba że to literówka, należy dostosować atrybut formularza za action wskazać na template widzenia: action="{{ url_for('template') }}"

11

Wymienić:

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

z:

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

Jeśli pominąć action atrybut, formularz zostanie opublikowany pod bieżącym adresem URL.

Wymienić:

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

z:

<form method="post"> 
Powiązane problemy