Python 尝试在flask上注册用户名时出现类型错误

Python 尝试在flask上注册用户名时出现类型错误,python,flask,Python,Flask,我需要你们帮我理解这个逻辑。我希望我的程序在用户注册时检查用户名或电子邮件是否已被占用。我有一个正常的数据库工作正常,但当我设置此代码时,我的终端返回以下信息: TypeError: The view function did not return a valid response. The function either returned None or ended without a return statement. 我的路线如下: @app.route("/register", met

我需要你们帮我理解这个逻辑。我希望我的程序在用户注册时检查用户名或电子邮件是否已被占用。我有一个正常的数据库工作正常,但当我设置此代码时,我的终端返回以下信息:

TypeError: The view function did not return a valid response. The function either returned None or ended without a return statement.
我的路线如下:

@app.route("/register", methods=["GET", "POST"])
def register():
    if request.method == "GET":
        return render_template("register.html")
    if request.method == "POST":
        user = User(name=request.form.get("name"), username=request.form.get("username"), email=request.form.get("email"), password=generate_password_hash(request.form.get("password")))
        existing_mail = User.query.filter_by(email=request.form.get("email")).first()
        existing_username = User.query.filter_by(username=request.form.get("username")).first()
        if existing_mail and existing_username is None:
            db.session.add(user)
            db.session.commit()
            login_user(user)
            session["user_id"] = user
            flash("Registered!")
            return render_template("login.html")
        elif existing_mail is not None:
            flash('Email already exists.')
            return render_template("register.html")
        elif existing_username is not None:
            flash('Username already exists.')
            return render_template("register.html")


这就是我认为代码应该做的:如果邮件和用户名都返回None,这意味着我的数据库中没有匹配的电子邮件和用户名,因此我可以创建该用户。否则,如果它不返回none,这意味着我的数据库中已经有一些值匹配,因此我应该闪烁一个错误。我不明白为什么我会犯这个错误。提前感谢

这可能是因为该函数中没有默认模板。如果所有If情况均为true,则函数将简单结束(并返回
none
)。试一试

@app.route(“/register”,methods=[“GET”,“POST”])
def寄存器():
如果request.method==“GET”:
返回呈现模板(“register.html”)
如果request.method==“POST”:
user=user(name=request.form.get(“name”),
#代码
返回呈现模板(“register.html”)

这可能是因为该函数中没有默认模板。如果所有If情况都不正确,则函数将简单结束(并返回
)。请重试

@app.route(“/register”,methods=[“GET”,“POST”])
def寄存器():
如果request.method==“GET”:
返回呈现模板(“register.html”)
如果request.method==“POST”:
user=user(name=request.form.get(“name”),
#代码
返回呈现模板(“register.html”)

如果现有邮件为无且现有用户名为无:
如果现有邮件为无且现有用户名为无: