我使用Flask构建系统,其中包含网站和应用的API。我为webviews定义了一个before_request,如下所示:
@app.before_request
def before_request():
g.user = current_user
# And I do some more stuff here..
我在基于文件夹的结构中得到了我的观点,如下所示:
views (folder)
---------------
- __init__.py
- apiviews.py
- webviews.py
因为我正在为api使用基于令牌的登录系统,我现在想要为所有apiviews定义不同的before_request。有没有办法可以做到这一点?也许我需要定义装饰器或什么?欢迎所有提示!
答案 0 :(得分:6)
您不能在特定视图中使用before_request
挂钩,而不能在同一个应用中使用。
您的选择是:
Blueprint
;你可以为每个蓝图注册一个before_request
,它只会应用于该蓝图的视图。before_request
。before_request
处理程序中的请求路径; if request.path.startswith(...)
样式测试。