在Flask中,设置一个cookie,然后重新定向用户。

8 浏览
0 Comments

在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)

0