如果路线中有任何路径参数,我们如何在猎鹰中间件中获取路径参数?

时间:2018-08-17 07:46:20

标签: python python-requests falconframework falcon

我的路线如下:

app.add_route('/v1/my_route', MyResource())
app.add_route('/v1/my_route/{app_id}', MyResource())
app.add_route('/v1/my_route2/any_route', AnyRouteResource())
app.add_route('/v1/my_route2/any_route/{app_id}', AnyRouteResource())

和中间件类似于

class MyMiddleware(object):
    def process_request(self, req, resp):
        /** Here i want to get <app_id> value if it is passed **/

2 个答案:

答案 0 :(得分:2)

您可以从req获取请求对象的每个属性。例如,要获取资源的路径:

class MyMiddleware(object):
    def process_request(self, req, resp):
        path = req.path

        # process your path here

检查docummentation以获得有关请求的更多信息。

如果您想直接获取app_id,只需extend带有params的方法,猎鹰就可以完成。

class MyMiddleware(object):
        def process_request(self, req, resp, params):
            app_id = params["app_id"]

答案 1 :(得分:2)

基本中间件中有process_resource(self,req,resp,resource,params)方法。您可以覆盖它。参数是一个类似dict的对象,具有从uri模板字段中提取的参数。

https://falcon.readthedocs.io/en/stable/api/middleware.html