首页 > 解决方案 > 赋值前引用的局部变量“消息”

问题描述

从我的 python 编辑器在我的 html 页面中呈现'user_message'变量时遇到问题,错误页面指出“在分配之前引用了局部变量'message'”。我在这里查看了以前的问题/答案,但无法弄清楚。下面是我的代码。感谢一些帮助。谢谢

if request.method == "POST":
        new_user = request.form["username"]
        registered_users = users()
        if new_user in registered_users:
            user_message = "Sorry, this username is taken, please choose another"
        else:
            if request.method == "POST":
                user_list = open("data/users.txt", "a")
                user_list.write(new_user + "\n")
                session['user'] = new_user
                flash("Thanks for registering {}!".format(request.form["username"]))
    return render_template("register.html", register_message = user_message)

标签: htmlpython-3.x

解决方案


您在语句中使用了user_message变量,return但只在一种情况下定义了它,即if语句。所以你也必须在else块中定义它,或者你可以user_messageif-else块上方定义并覆盖它,以防用户已经存在。寻找评论,以便在哪里修复。

if request.method == "POST":
        new_user = request.form["username"]
        registered_users = users()
        if new_user in registered_users:
            user_message = "Sorry, this username is taken, please choose another"
        else:
            if request.method == "POST":
                user_message = "This user name available !!!" # <--- You need to define it in the else branch too
                user_list = open("data/users.txt", "a")
                user_list.write(new_user + "\n")
                session['user'] = new_user
                flash("Thanks for registering {}!".format(request.form["username"]))
    return render_template("register.html", register_message = user_message)

推荐阅读