首页 > 解决方案 > `@before_request` 装饰器中的访问路径变量(例如`/users/ 中的`user_id``)

问题描述

我有一个名为users_bp. 为了实现对整个用户蓝图的授权,我想使用before_request装饰器。

然而,显然,在我的例子中, before_request 装饰器没有收到 URL 的动态部分user_id

users_bp = Blueprint("users_bp", __name__, url_prefix="/users/<user_id>")

@users_bp.before_request
def before_request(user_id):
    pass

例外:TypeError: before_request() missing 1 required positional argument: 'user_id'

因为我仍然可以访问其中的request对象,before_request所以我可以手动提取,user_id但必须有更好的方法......

(最初我希望装饰器为 /users 路由做两件事:1. 检查授权,2. 将特殊的“/users/me”路由解析为当前登录的用户 ID。这仅在我添加装饰器时才有效到每条单独的路线。)

标签: pythonflask

解决方案


推荐阅读