Python Eve条件/批量删除
从和我自己的测试来看,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/ …但我希望尽可能
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