【问题标题】:In Flask, set a cookie and then re-direct user在 Flask 中,设置一个 cookie,然后重定向用户
【发布时间】:2012-09-04 22:50:54
【问题描述】:

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

【问题讨论】:

    标签: python flask


    【解决方案1】:

    您应该将代码更改为:

    from flask import make_response
    if s.setSession():
        response = make_response(redirect('/home'))
        response.set_cookie('session_id', s.session_id)
        return response
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-11
      • 1970-01-01
      • 1970-01-01
      • 2015-11-20
      • 2017-10-01
      • 2021-11-28
      • 2015-07-26
      • 2015-03-30
      相关资源
      最近更新 更多