在Flask中,设置一个Cookie,然后重定向用户

在Flask中,似乎可以通过直接修改响应对象来设置Cookie。

如何成功返回响应对象,又如何在成功登录后将用户重定向到其他页面?我想专门重定向用户,而不是渲染其他页面,以防用户点击REFRESH。

这是我当前的代码,它仅显示同一页面login.html:

@app.route('/login', methods=['POST', 'GET'])

def login():

errors = []

if request.method == 'POST':

email = request.form['email']

password = request.form['password']

#Check the user's e-mail

try:

u = User(email)

except UserError, e:

errors.append(e)

else:

#Check the user's password

if not u.authenticatePassword(password):

errors.append(('password','Invalid password'))

return render_template('login.html',error=errors)

#Set the session

s = Session()

s.user_id = u.user_id

s.ip = request.remote_addr

#Try to set the 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)

回答:

你应该将代码更改为:

from flask import make_response

if s.setSession():

response = make_response(redirect('/home'))

response.set_cookie('session_id', s.session_id)

return response

以上是 在Flask中,设置一个Cookie,然后重定向用户 的全部内容, 来源链接: utcz.com/qa/425347.html

回到顶部