首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Flask中,设置cookie,然后重定向用户

在Flask中,设置cookie,然后重定向用户
EN

Stack Overflow用户
提问于 2012-09-05 06:50:55
回答 1查看 26.8K关注 0票数 40

似乎在Flask中,cookie是通过直接修改response对象来设置的。

如何返回响应对象,并在成功登录后将用户重定向到不同的页面?我特别想重定向用户,而不是呈现不同的页面,以防用户点击刷新。

下面是我当前的代码,它只是显示同一个页面login.html:

代码语言:javascript
复制
@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)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-05 07:08:00

您应该将您的代码更改为类似以下内容:

代码语言:javascript
复制
from flask import make_response
if s.setSession():
    response = make_response(redirect('/home'))
    response.set_cookie('session_id', s.session_id)
    return response
票数 72
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12272418

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档