我正在使用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 ...
答案 0 :(得分:1)
我知道这是一个老问题。 eve-sqlalchemy现在是一个具有独立生命周期/代码库的扩展。
当前的代码库似乎处理<dp:append-http-request-header name = "'Cookie'" value = "concat('SM_USER=',$UserID) "/>
条件here
现在可能有效吗?
更新(2016年2月6日)
我测试了这个。以下语法有效:
or
请注意lookup['or_'] = [{'field1': 1}, {'field2': 2}]
而不是您期望的or_
。