2016-05-30 64 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'