【发布时间】:2019-08-16 03:36:47
【问题描述】:
我正在开发一个 Web 应用程序,并且正在创建一个登录和身份验证表单。如果您已登录,某些页面应该是禁止访问的(例如登录表单),我正在尝试创建一种系统的方式来执行此操作。
为此,我试图创建一个返回 return 语句的函数。请参阅下面的代码。
def login():
redirect_to_home_if_logged_in()
# rest of login page
def register():
redirect_to_home_if_logged_in()
# rest of register page
def redirect_to_home_if_logged_in():
if current_user.is_authenticated:
print("squa")
return return redirect(url_for('home'))
我希望该函数会返回一个 return 语句,以便登录和注册页面会返回一个重定向。相反,我得到了一个错误。
【问题讨论】:
-
对于大多数 web 框架,有一个标准的方式来做这样的事情,你应该参考他们的文档。除了 Web 开发人员,您似乎在描述的是 Python decorator
-
@Dair 我尝试使用装饰器,但我无法使用 redirect_to_home_if_logged_in 来装饰登录功能,因为那时我们不在请求范围内,而 current_user 是 NoneType