4

有一些方法可以返回字段包含某些值的项目吗?例如。

GET /people?contains="foo"

返回名称中包含“foo”一词的所有人员。

提前致谢

4

2 回答 2

14

您可以使用 mongodb运算符,它在 Eve ( )$regex中默认被列入黑名单。MONGO_QUERY_BLACKLIST = ['$where', '$regex']

添加MONGO_QUERY_BLACKLIST = ['$where']到您的settings.py. 然后你可以像这样查询你的 API:

?where={"name": {"$regex": ".*foo.*"}}.

不过要小心。如果您不控制客户端,启用正则表达式可能会增加您的 API 漏洞。

于 2014-04-16T07:27:46.743 回答
0

我自己并不熟悉夏娃。但是看看它的网页似乎暴露了 Flask 的所有功能。

您需要查看有关访问请求数据的文档中的此页面。

在您的 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

希望这能给你一个关于如何做事的起点。

于 2014-04-16T01:44:28.293 回答