You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

FastAPI路径参数默认值如何生效?解决无参数路径返回404问题

FastAPI路径参数默认值生效的解决方案

你遇到的核心问题是:路径参数是URL路径的固定组成部分,/users/{code}这个路由规则要求URL必须包含code部分,所以访问/users/时找不到匹配的路由,返回404。这和查询参数逻辑不同——查询参数是可选的,所以默认值能直接生效。

要让路径参数的默认值生效,你需要把路径参数设置为可选,FastAPI支持通过在路径参数名后加?来实现。修改后的代码如下:

from fastapi import FastAPI, Path

app = FastAPI()

@app.get("/users/{code?}")
async def get_user(code: str = Path("hellomotto", regex=r'hello.*')):
    return {"code": code}

这样修改后:

  • 访问localhost:666/users/helloworld时,正常返回{"code": "helloworld"}
  • 访问localhost:666/users/时,会自动使用默认值hellomotto,返回{"code": "hellomotto"}

需要注意:

  • 路径参数设为可选后,FastAPI会同时匹配/users/和/users/{code}两种URL格式
  • 这种方式无需新增单独的/users/端点,就能满足你想要的默认值逻辑

另外你之前尝试的default="hellomotto"本身没问题,但原路由规则不允许code缺失,导致默认值根本没机会被触发——问题出在路由定义,而非参数默认值的设置。

内容的提问来源于stack exchange,提问作者avnav99

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 00:35:19