2016-03-10 3 views
0

Я пытаюсь использовать функцию Flask'sflash, когда пользователь нажимает кнопку на форме. Код правильно идентифицирует нажатие кнопки как запрос POST, но веб-страница дает 404 error. Я сузил его до flash(), потому что без него нет 404 error. В чем проблема?Flask flash дает ошибку 404

INIT .py

from flask import Flask, render_template, flash, request 
app = Flask(__name__) 


@app.route('/', methods=["GET", "POST"]) 
def meter_input(): 

    print request.method 
    if request.method == "POST": 
     print request.form['phone'] 
     flash('test') 
    return render_template("input.html") 

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

input.html

<html> 
<form method="post"> 
<fieldset> 

<div class="form-group">  
    <input id="phone" name="phone" type="text" value="" placeholder=""> 
</div> 

<div class="form-group"> 
    <input type="submit" id="update" value="Update Data"/> 
</div> 
</fieldset> 
</form> 
<BR><BR> 
</html> 

ответ

3

flask.flash по-видимому, использует flask.session. Но flask.session не может быть использован без указания секретного ключа для вашего приложения. Вы могли бы узнать об этом, если бы вы запустили ваш сервер в режиме отладки (который вы не должны делать только на производстве).

Чтобы запустить сервер в режиме отладки использования:

app.run(debug=True) 

Чтобы исправить вам актуальную проблему определить секретный ключ сразу после создания объекта Flask

app = Flask(__name__) 
app.secret_key = "Some secret string here" 

Я до сих пор не знаю, почему вы получили 404. Вы должны были получить 500 за internal server error

+0

хорошее предложение. Я сейчас просто играю, так что, наверное, просто работаем в режиме отладки. Добавление секретного ключа предотвращает «404», но текст вспышки не отображается. – user2242044

+0

Это правильно, но это был не ваш вопрос. Если вы хотите узнать, как отображать свернутые сообщения, посмотрите здесь: http://flask.pocoo.org/docs/0.10/patterns/flashing/ – Wombatz

+0

спасибо, что он работает. – user2242044

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