使用Flask,我试图创建一个用户注册页面('/ signup'),该页面在单击“注册”按钮后会将用户路由到“ / submit_registration”。这将调用一个函数,该函数检查提供的用户名和电子邮件,并确保它们已经不存在于数据库中。该调用将返回以下内容之一:
-success
-email already exists
-username already exists
如果该消息成功,那么我知道数据库调用将用户添加到了数据库中,并且我希望将其路由到登录页面('/ login')。如果返回的消息不是“成功”,那么我想使用显示消息的,将其重定向回注册页面(“ / signup”),通知用户他们需要提供其他用户名和/或密码。我当前的脚本在下面(请注意,我的数据库调用在另一个脚本中):
from flask import Flask, render_template, request, redirect, url_for
import db.db_mgmt as db_mgmt
app = Flask(__name__)
@app.route('/')
@app.route('/signup')
def signup():
return render_template('signup.html', message=result)
@app.route('/submit_registration', methods=['POST'])
def add_user():
username = request.form['username']
first = request.form['first']
last = request.form['last']
email = request.form['email']
password = request.form['password']
result = db_mgmt.add_user(username, first, last, email, password)
if result == 'success':
return redirect(url_for('login'))
else:
return redirect(url_for('signup', message = result))
@app.route('/login')
def login():
return render_template('login.html')
@app.route('/home', methods=['POST'])
def homepage():
return "Welcome to your homepage"
@app.route('/validate_login', methods=['POST'])
def validate_login():
username = request.form['username']
password = request.form['password']
if db_mgmt.login():
return redirect(url_for('homepage'))
else:
return redirect(url_for('login', message = 'Invalid Login'))
app.run(debug=True, host='0.0.0.0', port=5000)
我的错误与我最近在注册功能下添加的部分有关:
return render_template('signup.html', message=result)
此方法在添加',message = result;之前有效。但是,现在,当我尝试运行此脚本时,得到以下信息:
return render_template('signup.html', message=result)
NameError: name 'result' is not defined
推荐的处理方式是什么?任何见解将不胜感激。