我是 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')
看起来您正在使用 Flask,因此我建议使用 Flask-WTForms (构建于 WTForms 之上)为您的表单创建、验证和生成错误消息。
您还可以使用 AJAX(with jQuery)向后端发出请求、获取错误并显示它们,而无需重新加载页面或重定向用户。
到目前为止,它的实现取决于您的代码,但我认为这是实现您的目标的一个非常好的方法。