Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 是否可以将路径传递到fastapi端点?_Python_Python 3.x_Fastapi - Fatal编程技术网

Python 是否可以将路径传递到fastapi端点?

Python 是否可以将路径传递到fastapi端点?,python,python-3.x,fastapi,Python,Python 3.x,Fastapi,我正在尝试使用fastapi创建一个文件夹遍历api。 假设我有这样一个终点: @root_router.get("/path/{path}") def take_path(path): logger.info("test %s", path) return path 如果我对浏览器执行此操作并调用“URL:PORT/path/path” 它返回“路径”,很简单。但是如果我尝试“URL:PORT/path/path/path”,代码甚至无法到达记录器。我想这是有道理的,因为AP

我正在尝试使用fastapi创建一个文件夹遍历api。 假设我有这样一个终点:

@root_router.get("/path/{path}")
def take_path(path):
    logger.info("test %s", path)
    return path
如果我对浏览器执行此操作并调用“URL:PORT/path/path”

它返回“路径”,很简单。但是如果我尝试“URL:PORT/path/path/path”,代码甚至无法到达记录器。我想这是有道理的,因为API没有这个端点。但它确实存在于我的服务器上。我已经找到了其他方法来实现这一点,即将路径作为参数数组传递,并使用/separator在代码中重新编译,但是在url中传递参数感觉有点笨拙,如果我可以像我的服务器一样在url中移动路径,那将是理想的。这可行吗


谢谢。

:path
添加到您的参数:

@root\u router.get(“/path/{path:path}”)
异步def take_路径(路径:str):
logger.info(“测试%s”,路径)
返回路径

请注意,这是Starlette的一项功能。

哇,这很有效。谢谢这是正确的方法,是吗?有什么建议吗?我正在使用angular调用api并提供文件。@ScipioAfricanus通常不鼓励这种api设计。例如,OpenAPI甚至不允许定义这样的东西。我建议将路径作为查询参数传递。但是,如果您决定继续当前的设计,这是标准方法。