Python 如何在助手函数中访问请求
假设您想重定向未登录的用户。目前我有:Python 如何在助手函数中访问请求,python,flask,Python,Flask,假设您想重定向未登录的用户。目前我有: def my_account(): if "user" not in session or not session["user"]: return redirect('/') ... def my_favourites(): if "user" not in session or not session["user"]: return redirect('/') ... 但是现在我想重
def my_account():
if "user" not in session or not session["user"]:
return redirect('/')
...
def my_favourites():
if "user" not in session or not session["user"]:
return redirect('/')
...
但是现在我想重用检查用户是否登录的代码。但这需要会话
对象
我不确定是否可以或应该在helper函数中显式传递
请求
或会话
对象。或者是否还有其他更可取的方法?您尝试过吗?我相信这是一个包,将提供什么你正在寻找更容易 如果要编写可重用代码来验证用户是否已登录,建议使用视图函数上的装饰程序。比如说,
@login_required
def do_something():
* pass
然后,您可以在下面定义这个装饰器。然后可以使用请求
和会话
对象。此外,如果用户尚未登录,这将重定向到登录url,然后在登录后转发到下一页
def login_required(f):
* @wraps(f)
* def decorated_function(*args, **kwargs):
* if "user" not in session or not session["user"]:
* return redirect(url_for('login', next=request.url))
* return f(*args, **kwargs)
* return decorated_function
我看了一眼。此刻,我希望“滚我自己的”,并试图对烧瓶有更深的理解。另外,我想知道在一般情况下如何做到这一点,而不一定是身份验证/自动授权。