在 Web 开发中如何将后端错误传达给前端?

问题描述 投票:0回答:1

我是 Web 开发新手,所以我只是好奇将后端错误传达给前端的最佳方式?例如,我正在创建一个注册表单(下图),如果用户尝试使用已存在的电子邮件注册帐户,则会返回错误。

从设计角度来看,我想为用户创建有关错误的通知(类似于下面的 Goodreads 示例)。从后端,我知道我可以将用户重定向到一个单独的、外观相同的页面,其中通知元素位于表单上方(或者完全不同的页面来传达错误),但这感觉很重复。

我只是好奇是否可以在后端定义错误,然后前端知道在发生错误时触发屏幕上的元素。

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

        #Define and capture variables
        fname = request.form.get("fname")
        lname = request.form.get("lname")
        email = request.form.get("email")
        pw = request.form.get("pw")
        cpw = request.form.get("cpw")
        print(fname, lname, email, pw, cpw)

        if (not fname or not lname or not email or not pw or not cpw) or (pw != cpw):
            return("ERROR: Email already exists")
     
        pw = generate_password_hash(pw)

        try:
            db.execute('INSERT INTO users (fname, lname, email, hashpw, confirmed) VALUES (%s, %s, %s, %s, %s)',(fname, lname, email, pw, False))
            conn.commit()
        except:
            print("error")
            

        return render_template('register.html')
    else:
        return render_template('register.html')

python error-handling frontend backend registration
1个回答
0
投票

看起来您正在使用 Flask,因此我建议使用 Flask-WTForms (构建于 WTForms 之上)为您的表单创建、验证和生成错误消息。

您还可以使用 AJAX(with jQuery)向后端发出请求、获取错误并显示它们,而无需重新加载页面或重定向用户。

到目前为止,它的实现取决于您的代码,但我认为这是实现您的目标的一个非常好的方法。

© www.soinside.com 2019 - 2024. All rights reserved.