python - 重定向后 Flask flash 不工作

标签 python flask cloud9-ide cloud9

我遇到了一个问题,即闪现消息未显示重定向之前设置的消息。我创建了一个简单的项目来重现该问题。无论是否有 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 %}

更新

我尝试使用 localhost 而不是通过 cloud9 界面拥有的域名从命令行调用此函数。而且效果很好。

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

This is a redirect test flash

This is a regular test flash

我已将 SERVER_NAME 变量设置为正确的名称,但它仍然不起作用。

最佳答案

事实证明该问题与 SERVER_NAME 有关。它不应包含子域名。

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

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

关于python - 重定向后 Flask flash 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37532286/

相关文章:

python - 如何使用 Flask 从 python 调用应用程序路由

python - Flask - 可选路径参数

ruby-on-rails - Cloud9 : rails server redirecting to OpenShift website

具有继承性的 Python 循环导入

python - 配置 ruamel.yaml 以允许重复键

python - 结合使用flask(或elasticsearch)和Node.js Web服务器是否有意义?

node.js - Cloud 9 ide 中的跨源 Node js

cloud9-ide - 从 GitHub 本地安装 IDE C9

包含自动更改的对象的 Python 堆栈

python - 在Python+Selenium+Firefox中等待下载完成