С Flask я пытаюсь создать страницу регистрации пользователя ('/ signup'), по которой при нажатии кнопки 'регистрация' пользователи будут перенаправлены на '/ submit_registration'. Это вызовет функцию, которая проверяет имя пользователя и адрес электронной почты, которые были предоставлены, и гарантирует, что они уже не существуют в базе данных. Этот вызов вернет одно из следующего:
-success
-email already exists
-username already exists
Если сообщение успешно, то я знаю, что вызов базы данных добавил пользователя в базу данных, и я хочу направить его на страницу входа ('/ login'). Если возвращаемое сообщение не «успешно», я хочу перенаправить его обратно на страницу регистрации («/ регистрация») с сообщением, отображающим сообщение, информирующее пользователей о том, что им нужно предоставить другое имя пользователя и / или пароль. Мой текущий сценарий ниже (обратите внимание, что мои вызовы базы данных выполняются в другом сценарии):
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
Каков рекомендуемый способ справиться с этим? Любое и все понимание будет с благодарностью.