【问题标题】:Filter for Flask-Restless doesn't filter resultsFlask-Restless 过滤器不过滤结果
【发布时间】:2015-10-14 05:01:53
【问题描述】:

我正在尝试使用请求向 Flask-Restless 发送过滤器查询。结果不被过滤。如何正确编写过滤器?

import requests
import json
q = {'filters': [{'task': 'build an API', 'task': 'profit'}]}
r = requests.get('http://127.0.0.1:5000/toworks', params={'q': json.dumps(q)})

我希望结果只包含第一项和第三项,但第二项也存在。

{
    "towork1": {
        "task": "build an API"
    }, 
    "towork2": {
        "task": "?????"
    }, 
    "towork3": {
        "task": "profit!"
    }
}

【问题讨论】:

    标签: python flask flask-restless


    【解决方案1】:

    您用于过滤器的语法完全错误。应该有一个过滤器列表,每个过滤器都是一个带有nameopvalue 键的字典。由于您要在任务的值内搜索,请在您要过滤的值之前和之后使用带有通配符 (%) 的 like 操作。您还需要使用or,因为这两个过滤器是互斥的。

    q = {'filters': [{'or': [
        {'name': 'task', 'op': 'like', 'val': '%build%'},
        {'name': 'task', 'op': 'like', 'val': '%profit%'}
    ]}]}
    

    【讨论】:

      猜你喜欢
      • 2020-02-29
      • 2014-10-23
      • 1970-01-01
      • 2017-05-14
      • 1970-01-01
      • 2015-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多