2016-03-10 86 views
0

我正嘗試使用Flask'sflash功能,當用戶單擊一個窗體上的按鈕。該代碼正確識別按鈕推送爲POST請求,但網頁產生404 error。我已經縮小到flash(),因爲沒有它,沒有404 error。這裏有什麼問題?燒瓶閃存產量404錯誤

初始化的.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。你應該得到500internal server error

+0

好建議。我現在大多隻是在玩耍,所以應該只是在調試模式下工作。添加密鑰可防止「404」,但閃光文本永遠不會顯示。 – user2242044

+0

這是正確的,但那不是你的問題。如果你想知道如何顯示閃現的消息,請看看這裏:http://flask.pocoo.org/docs/0.10/patterns/flashing/ – Wombatz

+0

謝謝你的工作。 – user2242044