查找GET请求是否未找到资源的最简单方法

2024-05-15 19:35:47 发布

您现在位置:Python中文网/ 问答频道 /正文

python-eve framework中,在GET请求找不到任何资源的post GET hook中,最简单的方法是什么(例如,给定的filtering parameters无法匹配任何资源)?在

谢谢!在


Tags: 方法getframework资源hookevepostparameters
2条回答

由于payload是一个Flask^{}对象,因此可以利用它的特性。一种选择是简单地调查_items键,该键在集合端点上返回实际文档:

import json

def on_post_get(resoure, request, payload):
    # get the actual response json out of Flask Response
    json = json.loads(payload.get_data())

    documents = json['_items']
    assert(len(documents) == 0)

app = Eve()
app.on_post_GET += on_post_get

if __name__ == '__main__':
    app.run()

您应该能够读取钩子中的响应头X-Total-Count。如果它的值为0,则找不到任何资源。在

要访问此值,调用将如下所示:

# Within run.py
app.on_fetched_resource_something += before_returning_something_items

# Within your hook module file
def before_returning_something_items(response):
    numRecs = int(response.headers.get("X-Total-Count"))
    if numRecs > 0:
        print "Found Something"
    else:
        print "Found Zilcho!"

相关问题 更多 >