python - 如何定义自定义过滤器并将其绑定(bind)到资源端点

标签 python sqlalchemy eve

我正在使用 Python EVE、EVE-SQLAlchemy、Flask、Flask-SQLAlchemy、SQLAlchemy 和 Postgres 数据库。

我的 API 端点已全部设置好,开箱即用,运行良好。

现在我正在尝试过滤 some_model 资源返回的项目,以便它只返回属于特定用户(执行 API 请求的用户)或具有特定名称(前缀)。执行此操作的 SQlAlcehmy 代码如下:

session.query(SomeModel).filter(or_(SomeModel.name.like('SOMETHING_%'), SomeModel.account_id==1)).all()

我查看了前后请求 Hook 、用户限制的资源访问以及我能找到的所有其他内容,但似乎没有任何地方描述如何将自定义过滤器应用于特定端点/资源的(所有)GET 请求。

有点像 URL 过滤器功能,但始终在数据库级别(而不是序列化/响应级别)打开和过滤。

最佳答案

如果我理解正确的话,看起来像一个 Dynamic Lookup FilterPre-Request Event Hook 里面将满足您的过滤需求。

关于python - 如何定义自定义过滤器并将其绑定(bind)到资源端点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34459842/

相关文章:

python - 在提交某种类型的模型后运行函数

python - 如何在 python-eve 应用程序中进行自定义插入

python - gunicorn 无法启动 python-eve

python - 解析复杂的查询参数

python - Pandas groupby 查找真假百分比

python - 我可以在查询调用中动态更改 order_by 属性吗?

Python eve - 如何在成功验证后获取当前用户?

python - sklearn : KDE not working for small values

python - 使用 PIL 模块的 UnicodeDecodeError

python - 如何获取 SQL 查询的元数据?