烧瓶中的中间件
Middleware in flask
我刚刚提到使用 Flask 并试图在我的项目中实现一个小功能。 objective 仅当请求来自经过身份验证的用户时才设置 cookie。
我找到了两种方法。
第一种方法
@app.before_request
def before_request():
# set cookie if user is logged in
第二种方法,通过实现类似这样的东西
adding-a-simple-middleware-to-your-flask-application
有人可以向我解释一下这两种方法之间的主要区别是什么以及应该在何时何地使用哪种方法。
此外,我目前正在使用 "flask-login" 来跟踪登录用户。
如果我使用第一种方法,我可以通过导入 current_user
轻松验证是否有人登录
from flask.ext.login import current_user
但是如果我在使用第二种方法时尝试做同样的事情,current_user 总是 "None" 因为应用程序上下文不正确。
所以,我想知道如果我决定继续进行第二次实施,我该如何检查用户是否已登录。
你说的第二种方法我没用过。我确信可以用它来完成,但这种情况很少见。我建议使用烧瓶的更多常见功能。为了代码的维护者:)
所以你说的第一种方法就可以了。
或者您可以使用 decorators for more granular access restrictions. Keep in mind that setting cookies in flask can be done when making actual response object. That means you should use Deferred Request Callbacks 在修饰函数中设置 cookie。
我刚刚提到使用 Flask 并试图在我的项目中实现一个小功能。 objective 仅当请求来自经过身份验证的用户时才设置 cookie。
我找到了两种方法。
第一种方法
@app.before_request
def before_request():
# set cookie if user is logged in
第二种方法,通过实现类似这样的东西 adding-a-simple-middleware-to-your-flask-application
有人可以向我解释一下这两种方法之间的主要区别是什么以及应该在何时何地使用哪种方法。
此外,我目前正在使用 "flask-login" 来跟踪登录用户。 如果我使用第一种方法,我可以通过导入 current_user
轻松验证是否有人登录from flask.ext.login import current_user
但是如果我在使用第二种方法时尝试做同样的事情,current_user 总是 "None" 因为应用程序上下文不正确。
所以,我想知道如果我决定继续进行第二次实施,我该如何检查用户是否已登录。
你说的第二种方法我没用过。我确信可以用它来完成,但这种情况很少见。我建议使用烧瓶的更多常见功能。为了代码的维护者:) 所以你说的第一种方法就可以了。
或者您可以使用 decorators for more granular access restrictions. Keep in mind that setting cookies in flask can be done when making actual response object. That means you should use Deferred Request Callbacks 在修饰函数中设置 cookie。