重定向后,Flask闪存无法正常工作

时间:2016-05-30 19:09:25

标签: python flask cloud9-ide cloud9

我遇到的问题是Flash消息没有显示重定向之前设置的消息。我创建了一个简单的项目来重现问题。无论是否有SERVER_NAME配置文件,重定向闪存消息都不显示,但常常显示常规flash消息。

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 %}

更新

我尝试使用localhost从命令行调用它,而不是通过cloud9接口使用的域名。它运作良好。

$ wget -q -O - "$@" http://localhost:8080/flash

This is a redirect test flash

This is a regular test flash

我将SERVER_NAME变量设置为正确的名称但它仍然无效。

1 个答案:

答案 0 :(得分:4)

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

将配置更改为以下内容使其可以使用Cloud9域名:

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