繁体   English   中英

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

[英]How can we get path params in falcon middleware, if any path param in the route?

我的路线如下:

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 **/

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

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

        # process your path here

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

如果你想直接获得app_id,只需用params 扩展方法,falcon就可以完成这项工作。

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM