Python Eve条件/批量删除

Python Eve条件/批量删除,python,eve,Python,Eve,从和我自己的测试来看,Eve显然不支持资源端点的条件删除 我知道我可以使用GET:“where={…}”请求来删除我要删除的文档的\id和\etag,然后在每个项目端点发送一系列请求,以删除它们,并将If Match标题适当地设置为每个项目的\etag: for each item: DELETE: http://localhost:5000/items/<item._id> 对于每个项目: 删除:http://localhost:5000/items/ …但我希望尽可能

从和我自己的测试来看,Eve显然不支持资源端点的条件删除

我知道我可以使用
GET:“where={…}”
请求来删除我要删除的文档的
\id
\etag
,然后在每个项目端点发送一系列请求,以删除它们,并将
If Match
标题适当地设置为每个项目的
\etag

for each item:
    DELETE: http://localhost:5000/items/<item._id>
对于每个项目:
删除:http://localhost:5000/items/
…但我希望尽可能避免发送多个HTTP请求

一种解决方案可能是,但这些是静态过滤器,我希望根据一些URL参数动态过滤删除。也许是我正在寻找的解决办法


Eve支持批量删除吗?如果没有,建议用什么方式扩展Eve的功能以提供条件和/或批量删除?

我添加了一个要删除的事件前钩子,这似乎适用于我目前运行的测试:

def add_delete_filters(resource, request, lookup):
    if 'where' in request.args:
        conditions = request.args.getlist('where')
        for cond_str in conditions:
            cond = json.loads(cond_str)
            for attrib in cond:
                lookup[attrib] = cond[attrib]

app = Eve()
app.on_pre_DELETE += add_delete_filters