解决在烧瓶中接收包含斜线的字符串

Working around receiving a string containing slashes in flask

我是 Flask 的新手,所以我正在努力解决这个问题。

我正在尝试使用以下 URL 提出一个简单的请求:

@app.route("/home/components/<component_name>")
def get_component(component_name):
  #do something
  return component_data

这将产生与我的项目中使用的组件相关的所有数据。

问题是,所有组件名称都使用斜杠(即:“Process/Newday”、“Exe/ADM1/polling”),这使得它们无法通过 url 传递,所以我需要类似于此的内容:

@app.route("/<components>/*args")
def get_component(args):
  component_name = ""
  for arg in args:
    component_name += "/{}".format(arg)
  #do something
  return component_data

然而,尽管在这里和那里进行搜索,我还是找不到实现此目标的可行方法

您是否考虑过改用查询参数?

from flask import request

@app.route("/home/components")
def get_component():
    component_name = request.args.get('name')

然后像这样访问该地址:

yourdomain.com/home/components?name="Exe/ADM1/polling"

请注意,否则,除非斜杠的数量是固定的,否则 slack 没有正确的方法来知道哪个斜杠是分隔符,哪个是参数的一部分