使用变量/参数将用户重定向到上一页

时间:2019-03-20 00:02:48

标签: python flask

使用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

推荐的处理方式是什么?任何见解将不胜感激。

0 个答案:

没有答案