如何为特定视图创建 Flask before_request视图



我正在使用Flask构建一个系统,其中包含一个网站和一个应用程序的api。我为网络视图定义了如下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。有没有办法做到这一点?也许我需要定义一个装饰器或其他东西?欢迎所有提示!

不能将before_request挂钩用于特定视图,不能在同一应用中使用。

您的选择是:

  • 为您的 API 和网站使用单独的Blueprint;您可以为每个蓝图注册一个before_request,该将仅应用于该蓝图的视图。
  • 使用按视图修饰器而不是before_request
  • before_request处理程序中筛选请求路径; if request.path.startswith(...)风格测试。

最新更新