当前位置: 首页 > 面试题库 >

在Flask路线中捕获任意路径

燕扬
2023-03-14
问题内容

我有一个简单的Flask路由,我想捕获文件的路径。如果我<path>在规则中使用它,则适用于,/get_dir/one但无效/get_dir/one/two。如何捕获任意路径,以便path='/one/two/etc将其传递给视图函数?

@app.route('/get_dir/<path>')
def get_dir(path):
    return path

问题答案:

使用path转换器捕获任意长度的路径:<path:path>将捕获路径并将其传递给path参数。默认转换器捕获单个字符串,但以斜杠停止,这就是为什么第一个URL匹配而第二个URL不匹配的原因。

如果你还想匹配根目录(斜杠和空路径),则可以添加另一个规则,该规则为path参数设置默认值。

@app.route('/', defaults={'path': ''})
@app.route('/<path:path>')
def get_dir(path):
    return path


 类似资料:
  • 我通过安装从FastAPI提供React应用程序 通过这个 React 应用程序得到服务,React 路由在客户端也能正常工作,但是一旦客户端重新加载未在服务器上定义但在 React 应用程序中使用的路由 FastAPI 来解决此问题,我做了如下操作。 < Li > < code > @ app . route('/network ') < Li > < code > @ app . route(

  • 问题内容: 在Flask中,当我为同一功能使用多个路由时,如何知道当前使用的是哪个路由? 例如: 我怎么知道,现在我被称为使用或? 更新 我知道我不想使用它,因为请求可能相当复杂,并且我想在函数中重复路由逻辑。我认为最好的解决方案。 问题答案: 检查触发你的视图的路线的最“轻松”方法是request.url_rule。

  • 问题内容: 我有许多以唯一ID 开头和结尾的URL 。我需要能够从URL获取ID,以便可以将一些数据从另一个系统传递到我的Flask应用程序。我如何获得该价值? 问题答案: 你需要一个可变的URL,该URL是通过在URL中添加占位符并在view函数中接受相应的参数来创建的。 通常,URL的各个部分用分隔。 使用url_for生成的URL的网页。 你也可以将值作为查询字符串的一部分传递,并从请求中获

  • 问题内容: 在实现持久性底部栏时,单击底部栏中的按钮时,需要恢复以前的路线。 单击底部栏中的按钮时,将保存其当前路径路径(/ a / b / c ),并根据该按钮单击恢复先前保存的路径。 从概念上讲,用户会将每个按钮视为一个工作区,并且其状态永远不会丢失(包括后退堆栈)。用户可以安全地从一个工作区切换到另一个工作区。 当路由重绕到根时,如何在Flutter中获取当前路由路径? 问题答案: 不会公开

  • 我正在尝试使用WireMock创建动态模拟。我有一种情况,如果我指定如下URL: 那么我应该会收到如下响应: 简而言之,路径参数在响应正文中返回。我可以通过使用设置为urlPath模式使请求URL通用。但是,我不确定应该如何捕获abc@abc.com并使用正则表达式在响应中返回此值。

  • 我正在开发一个Android应用程序。它有一个功能,捕获的图像应该显示在屏幕上,我需要得到那个图像路径,这样我就可以把那个图像发送到服务器。 我可以在屏幕上显示图像,但无法获得绝对图像路径。 我得到的路径像: 如何获取实际图像路径? 这是我的密码: 值如上所示。 我如何从这个路径得到我的绝对图像路径。