我有一个关于重定向到呈现模板的函数的问题。我有两个功能:
@user.route('/register', methods=['GET', 'POST'])
def register():
if request.method == 'GET':
return render_template('register.html')
email = request.form['email']
if User.query.filter(User.email == email).first() is not None:
flash('Account already exists for this email address!')
return redirect(url_for('user.login'))
和
@user.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'GET':
return render_template('login.html')
return "Hello"
在第一个函数中,使用行return redirect(url_for('user.login'))
,我想传递带有该重定向的电子邮件变量,因此我可以在第二个函数中使用render_template
在HTML页面上显示该变量。我尝试了以下方法:
return redirect(url_for('user.login', defaultEmail=email))
第一个函数中的和
return render_template('login.html', defaultEmail=email))
但它给了我NameError: global name 'email' is not defined
。我该怎么做呢?
答案 0 :(得分:4)
url_for
应该通过email
通过查询字符串。它可以login
作为request.args
的一部分访问。
email = request.args.get('defaultEmail')