Eve框架:修改query_string

时间:2017-05-08 17:28:44

标签: python query-string webhooks eve

我正在使用Python EVE框架编写API。 在我的on_post_GET钩子中,由于某种原因,我想扩展request.query_string一些附加条件。

request.query_string看起来像一个原始编码字符串,并且在现有内容中添加一些新条件无用。

我的字符串如下:

embedded=%7B%22some_key%22%3A1%2C%22another_key%22%3A1%2C%22one_more_key%22%3A1%2C%22and_more_key%22%3A1%2C%22and_more%22%3A1%2C%22some_specific_key%22%3A1%2C%22the_last_key%22%3A1%7D&where=%7B%22some_statement%22%3A%22in%28%5B%5C%22value1%5C%22%2C%5C%22value2%5C%22%5D%29%22%7D&max_results=10&page=1&sort=%5B%28%22date%22%2C0%29%5D

所以,我想在WHERE语句中添加一个附加条件。我可能会以某种方式解析它,但有一些事情:

1)我可能有另一个条件和与病情相关的硬编码对我来说很糟糕。 2)我希望,有一些更好的方法来扩展它。

思想?

1 个答案:

答案 0 :(得分:1)

您应该可以通过处理lookup事件挂钩中的pre_GET来制作过滤器,例如pyeve的documentation中的示例:

def pre_GET(resource, request, lookup):
    # only return documents that have a 'username' field.
    lookup["username"] = {'$exists': True}
app = Eve()

app.on_pre_GET += pre_GET
app.run()