有哪些方法可以返回字段包含某些值的项目?例如
GET /people?contains="foo"
归还所有拥有“foo”字样的人。在名称中。
提前致谢
答案 0 :(得分:13)
您可以使用mongodb $regex
运算符,默认情况下会在Eve(MONGO_QUERY_BLACKLIST = ['$where', '$regex']
)中列入黑名单。
将MONGO_QUERY_BLACKLIST = ['$where']
添加到settings.py
。然后,您可以像这样查询您的API:
?where={"name": {"$regex": ".*foo.*"}}
。
但要小心。如果您不控制客户端,启用正则表达式可能会增加您的API漏洞。
答案 1 :(得分:0)
我自己并不熟悉夏娃。但是看看它的网页似乎暴露了Flask的所有功能。
您需要查看有关访问请求数据的文档中的this页面。
在Flask应用中,定义一个接受POST和GET请求的方法,然后您可以通过foo
访问request.args.get('contains', '')
。
这就是我的意思:
@app.route('/people', methods=['POST', 'GET'])
def get_people():
search_key = request.args.get('contains', '')
#search for people containing 'foo' in your DB
希望这能为你提供一个如何处理事情的起点。