2012-09-04 29 views
19

好像在燒瓶中,Cookie是由直接修改響應對象設置。在燒瓶中,設置cookie,然後再直接用戶

我怎樣才能返回響應的對象,同時也將用戶重定向到成功登錄後不同的頁面?我想專門重定向,而不是呈現不同頁面的用戶,如果用戶點擊刷新。

這裏是我當前的代碼,它只是顯示在同一頁面,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) 

回答

34

您應該更改您的代碼是這樣的:

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