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

问题描述

我是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"

请注意,否则,除非固定了斜杠的数量,否则松弛无法正确地知道哪个斜杠是分隔符,哪个是参数的一部分