2016-05-30 38 views
1

我遇到闪光灯消息未显示重定向前设置的消息的问题。我创建了一个简单的项目来重现问题。重定向闪光消息不会显示有或没有SERVER_NAME配置文件,但常规闪光消息始终显示。重新导向后烧瓶闪光灯无法工作

import sys 
import os.path 

from flask import Flask, flash, redirect, render_template, url_for 


class TestConfig: 
    DEBUG = True 
    SERVER_NAME = 'project-username.c9users.io' 

app = Flask(__name__) 
app.secret_key = 'my_secret_key' 


@app.route('/') 
def index(): 
    flash('This is a regular test flash') 
    return render_template('test.html') 


@app.route('/flash') 
def flash_it(): 
    flash('This is a redirect test flash') 
    return redirect(url_for('index')) 


app.run(host='0.0.0.0', port=8080) 

而且模板:

{% for message in get_flashed_messages() %} 
{{ message }} 
{% endfor %} 

更新

我试图使用本地主机而不是我在CLOUD9接口有域名从命令行调用它。它工作得很好。

$ wget -q -O - "[email protected]" http://localhost:8080/flash 

This is a redirect test flash 

This is a regular test flash 

我有SERVER_NAME变量设置为正确的名称,但它仍然无法正常工作。

+1

我复制/粘贴你的代码和模板准确,得到了两个闪烁显示出来,当我去'本地主机:8080 /闪光'。你在使用什么版本的Python,并且正在访问'/ flash'? –

+0

这是Python 3.4.3。由于你的评论,我创建了2.7.6的另一个virtualenv,并且有同样的问题。这是Flask 0.10.1。是的,我正在访问/ flash。 – bassburner

+2

原来它的服务器名称相关。更新原始帖子。 – bassburner

回答

3

问题原来与SERVER_NAME有关。它不应该包含子域名。

更改配置为以下使它与CLOUD9域名工作:

class TestConfig: 
    DEBUG = True 
    SERVER_NAME = 'project-username.c9users.io'