将url传递给flask api endpoint

问题描述:

我有一个很好的烧瓶api。最近,我们添加了文件上传部分。某些服务器端代码向api发送一个调用,这又会触发对这些上传文件的处理。 api调用本身包含文件的绝对路径。所以我有一个定义如下的路由:将url传递给flask api endpoint

@app.route('/Uploads/<string:userId>/<string:pathToFile>', methods=['POST']) 

处理上载的代码是PHP。在将路径发送到api之前,它会通过一种方法发送,该方法将斜线转义为%符号。对于那些熟悉它的人,该方法被称为urlencode

我遇到的问题是烧瓶不会识别路线。该请求将失败,即使它是那么简单:

localhost:5000/Uploads/testuser/%2Fhome 

在上面的例子中,我相信%字符引起的问题。如果我删除它,则请求成功。

我发现下面的SO后,似乎相关: How to pass file path in a REST API ala Dropbox using Flask-RESTful?在它的FP建议使用path占位符代替string。我想这样做,在我的代码如下所示:

@app.route('/Uploads/<string:userId>/<path:pathToFile>', methods=['POST']) 

我通过它的原始路径(没有经过URL编码旅行)。但是,这并没有奏效。

有没有人知道正确的方式来通过一个烧瓶API调用通过URL或路径?

+0

为什么<...>

<><>