烧瓶中的中间件

时间:2016-07-30 21:58:58

标签: python cookies flask middleware

我刚才说过使用Flask并试图在我的项目中实现一个小功能。目标是仅在请求来自经过身份验证的用户时才设置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”,因为应用程序上下文不正确。

所以,我想知道我是否决定继续第二次实施,如何检查用户是否登录。

1 个答案:

答案 0 :(得分:2)

我从未使用过你提到过的第二种方法。我确信它可以用它完成,但它非常罕见。我建议使用更常见的烧瓶功能。为了维护你的代码:) 所以你提到的第一种方法很好。

或者您可以使用decorators来获得更细粒度的访问限制。请记住,在制作实际响应对象时可以完成setting cookies in flask。这意味着你应该使用Deferred Request Callbacks在装饰函数中设置cookie。

相关问题