在Flask中,设置一个cookie,然后重新定向用户。
在Flask中,设置一个cookie,然后重新定向用户。
在Flask中,似乎是通过直接修改响应对象来设置cookie。
那么在成功登录后,我如何返回一个响应对象,并将用户重定向到另一个页面呢?我希望能具体地重定向用户,而不是渲染一个不同的页面,以防用户点击刷新按钮。
以下是我的当前代码,它只是简单地显示相同的页面login.html:
@app.route('/login', methods=['POST', 'GET'])
def login():
errors = []
if request.method == 'POST':
email = request.form['email']
password = request.form['password']
# 检查用户的邮箱
try:
u = User(email)
except UserError, e:
errors.append(e)
else:
# 检查用户的密码
if not u.authenticatePassword(password):
errors.append(('password','密码无效'))
return render_template('login.html',error=errors)
# 设置会话
s = Session()
s.user_id = u.user_id
s.ip = request.remote_addr
# 尝试设置cookie
if s.setSession():
response = make_response( render_template('login.html',error=errors))
response.set_cookie('session_id', s.session_id)
return response
return render_template('login.html',error=errors)