如何在Falcon python中使用查询字符串



您是否将应用程序配置为具有以下功能:

  1. 将 API 终结点定义为 app.add_route('/v1/tablets', TabletsCollection())

  2. 并且仍然能够像这样使用QueryParams https://example.com/api/v1/tablets?limit=12&offset=50&q=tablet name

集合有两种方法on_get用于检索整个列表和使用筛选器和on_post创建单个记录。

我已经在网上搜索了一段时间,你如何获得query_string和正确解析的参数?

查询字符串和解析的查询字符串(作为字典)在 falcon 传递给您的 API 终端节点的请求对象上都可用。

您的处理程序可以执行以下操作:

class TabletsCollection():
    def on_post(self, req, resp):
        print req.query_string
        for key, value in req.params.items():
            print key, value

请参阅 http://falcon.readthedocs.io/en/stable/api/request_and_response.html#Request.query_string 和 http://falcon.readthedocs.io/en/stable/api/request_and_response.html#Request.params。

您可以使用 falcon.uri 模块来解析查询字符串。

qs = falcon.uri.parse_query_string(req.query_string)
        if "myq" in qs:
            searchedQ = qs["myq"]

一段时间后,我想通了,问题不是我一开始想的那样与猎鹰有关。问题出在 Nginx 配置中,该配置正在代理对 gunincorn 的请求。

你可以在这里找到完整的答案 nginx,如何转发查询参数?或简短的答案在这里:

nginx配置文件的一部分

location ~ ^/api/(.*)$ {
    # ... your code
    # need to pass all the args to proxy
    proxy_pass http://gunicorn/$1$is_args$args;
}

相关内容

  • 没有找到相关文章

最新更新