我正在使用 Eve 和 sqlalchemy 分支来开发 REST API。
我想在将请求发送到数据库之前向 GET 请求添加过滤器,但是我还没有找到这样做的方法。
我想做的基本上是这样的:
from sqlalchemy import or_
def pre_GET(resource, request, lookup):
lookup.append(_or('field1'==1, 'field2'==2))
当然这不起作用,因为查找是一本字典。但是搜索前夕源代码我看不到实现 OR 的可能性。在此文件中使用 parse_dictionary() 解析查找变量:https ://github.com/nicolaiarocci/eve/blob/sqlalchemy/eve/io/sql/parser.py
使用 MongoDB 时的相应方式是这样的:
lookup['$or'] = [{'field1': 1}, {'field2': 2}]
然而,这只适用于 MongoDB ......