我认为标准做法是将成功登录后需要将用户重定向到的URL附加到登录URL的查询字符串的末尾。
您可以将装饰器更改为如下所示(装饰器函数中的冗余也已删除):
def logged_in(f): @wraps(f) def decorated_function(*args, **kwargs): if session.get('logged_in') is not None: return f(*args, **kwargs) else: flash('Please log in first...', 'error') next_url = get_current_url() # However you do this in Flask login_url = '%s?next=%s' % (url_for('login'), next_url) return redirect(login_url) return decorated_function您必须用代替某些东西
get_current_url(),因为我不知道Flask中是如何完成的。
然后,在登录处理程序中,当用户成功登录后,您将检查
next请求中是否有参数,如果有,则将其重定向到该URL。否则,您会将它们重定向到某个默认URL(通常
/,我想)。



