2016-03-10 63 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