【发布时间】:2014-05-30 14:24:53
【问题描述】:
有什么方法可以返回包含某些值的项目?例如。
GET /people?contains="foo"
返回名称中包含“foo”一词的所有人员。
提前致谢
【问题讨论】:
有什么方法可以返回包含某些值的项目?例如。
GET /people?contains="foo"
返回名称中包含“foo”一词的所有人员。
提前致谢
【问题讨论】:
您可以使用 mongodb $regex 运算符,它在 Eve 中默认被列入黑名单 (MONGO_QUERY_BLACKLIST = ['$where', '$regex'])。
将MONGO_QUERY_BLACKLIST = ['$where'] 添加到您的settings.py。然后你可以像这样查询你的 API:
?where={"name": {"$regex": ".*foo.*"}}.
不过要小心。如果您不控制客户端,启用正则表达式可能会增加您的 API 漏洞。
【讨论】:
我自己并不熟悉夏娃。但是看看它的网页似乎暴露了 Flask 的所有功能。
您需要查看文档中有关访问请求数据的this 页面。
在您的 Flask 应用程序中,定义一个同时接受 POST 和 GET 请求的方法,然后您可以通过执行 request.args.get('contains', '') 访问 foo。
这就是我的意思:
@app.route('/people', methods=['POST', 'GET'])
def get_people():
search_key = request.args.get('contains', '')
#search for people containing 'foo' in your DB
希望这能给你一个关于如何做事的起点。
【讨论】: