gpt4 book ai didi

python - 如何在辅助函数中访问请求

转载 作者:行者123 更新时间:2023-11-28 17:49:16 25 4
gpt4 key购买 nike

假设你想在用户未登录时重定向用户。目前我有这个:

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('/')

...

但现在我想重用检查用户是否登录的代码。但这需要 session 对象。

我不确定我是否可以或应该在辅助函数中显式传递 requestsession 对象。或者是否还有另一种更优选的方式?

最佳答案

如果您想编写可重用的代码来验证用户是否登录,一种推荐的方法是在 View 函数上使用装饰器。例如,

@login_required
def do_something():
* pass

然后,你就可以在下面定义这个装饰器了。然后您可以使用您的 requestsession 对象。此外,如果用户尚未登录,这将重定向到登录 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

关于python - 如何在辅助函数中访问请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13314118/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com