【问题标题】:Flask flash messaging is partially workingFlask Flash 消息正在部分工作
【发布时间】:2021-03-03 10:21:54
【问题描述】:

我已经实现了一个带有登录和注册路由的简单 Flask 应用程序,我想在用户名密码不匹配时闪烁消息。这是我的索引和登录路径的一部分,

@app.route('/')
@login_required
def index():
    return 'Hello World'

@app.route("/login", methods=["GET", "POST"])
def login():

    # Forget any user_id
    session.clear()

    if request.method == "POST":

        # Ensure username was submitted
        if not request.form.get("username"):
            flash("Must provide username")
            return redirect("/login")

        #And so on...

    if request.method == "GET":
        render_template("login.html")

问题是,当我提交带有空白输入的表单时,没有出现 Flash 消息。即便如此,相同代码的寄存器路由在渲染flash消息时没有任何错误,

@app.route("/register", methods=["GET", "POST"])
def register():

    if request.method == "POST":

        # Ensure username was submitted
        if not request.form.get("username"):
            flash("Must provide username")
            return redirect("/register")
      
        #And so on...

    if request.method == "GET":
            render_template("register.html")

我在我的模板中包含了 Jinja 模板。有人可以指出为什么它仅在登录路径中不起作用吗?

【问题讨论】:

    标签: python html flask web flash-message


    【解决方案1】:

    您的login 函数会清除会话,即使request.methodGET

    session.clear()
    

    由于闪存消息存储在会话中,因此在呈现登录表单时,消息已被删除。

    根据login 其余部分的外观,您可能希望仅在request.methodPOST 时清除会话。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-24
      • 1970-01-01
      • 1970-01-01
      • 2012-01-13
      • 2018-07-31
      • 1970-01-01
      • 2019-12-19
      • 2015-02-15
      相关资源
      最近更新 更多