【问题标题】:Google Functions Python: how to get a path parameterGoogle Functions Python:如何获取路径参数
【发布时间】:2020-05-28 20:58:24
【问题描述】:

我有一个 REST API,例如:/portfolios/{userid} 作为 Swagger 路径,它指向使用 Python 3 构建的 google 函数。

代码如下:

from flask import Flask, request
...
...
def portfolio_routes(request):
    request_json = request.get_json()
    path = request.path.lower()
    method = request.method.lower()
    ...

假设要执行的函数已设置为:portfolio_routes

如果我传递一个 URL,例如:https:// ..../portfolios/1234,我得到的路径是:portfolios/1234。显然,1234 是用户标识。就像我们通过将 userid 设置为 @app.routes 一样,有没有一种方法可以自动拆分路径并获取 userid 而无需编写拆分代码?

谢谢

【问题讨论】:

  • 达斯汀的这篇博客能帮到你吗? dev.to/googlecloud/…
  • 感谢@guillaumne,但这仅提及如何使用 args 获取 Flask 中记录的查询字符串。我要做的是检索路径参数。

标签: python-3.x flask google-cloud-functions


【解决方案1】:

我对 google-cloud-functions 了解不多,但如果是标准 Flask 请求对象,则通过 url 传递的变量放在 view_args 中,所以你这样做

from flask import Flask, request
...
...
def portfolio_routes(request):
    request_json = request.get_json()
    path = request.path.lower()
    method = request.method.lower()
    user_id = request.view_args['userId']
    ...

另外,您可以进行路由拆分,并将您的屏蔽 url('/portfolios/{userid}') 与即将到来的 url('/portfolios/1234') 进行比较,您的屏蔽 url 本地化为 @ 987654323@ 和request.PATH_INFO 中的即将到来的网址

【讨论】:

  • 感谢@Caio 的回复。 view_args 没有给出userid(它怎么会知道)。是的,路线拆分是我现在正在做的事情。只是想知道是否有内部的 Flask 方式来做到这一点。谢谢
猜你喜欢
  • 2018-09-09
  • 2021-08-02
  • 2021-12-26
  • 2018-11-13
  • 1970-01-01
  • 2021-08-22
  • 2014-06-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多