2.FastAPI 中的路由与路径操作

什么是路由?以及怎么通过路由定义不同路径的get请求

  • 在 FastAPI 中,路由的定义是通过装饰器来实现的,@app.get(“/”) 这个装饰器告诉 FastAPI 当接收到对根路径的 GET 请求时,要执行下面的 read_root 函数。
from fastapi import FastAPI

# 创建一个fastapi应用实例
app = FastAPI()

# 对应根路劲的get请求
@app.get("/")
def read_root():
	return {"message":"你好"}

# 对于"/index"路径的get请求
@app.get("/index")
def get_index():
	return {"message":"root"}

查询参数

  • /items/?skip=5&limit=20

    • 路径?后面的就是查询参数,键值对表示,&连接不同的查询参数;
    • 表示查询参数skip的值为5,limit的值为20
  • 可选查询参数

    • 如果某个查询参数是可选的,可以为其设置默认值 None
  • 参数验证

    • FastAPI 自动支持参数验证。例如,如果参数类型是 int,但用户传递了非整数值,FastAPI 会返回一个错误响应。
from fastapi import FastAPI

app = FastAPI()

@app.get("/items/")
async def read_item(skip: int = 0, limit: int = 10, item_id:int=None):
    return {"skip": skip, "limit": limit}

路径参数

  • /index/{name}
    • name就是路径参数
  • 默认路径参数
    • 如下面例子中的get_index函数,会绑定两个路由;
from fastapi import FastAPI

# 创建一个fastapi应用实例
app = FastAPI()


# 对应根路劲的get请求
@app.get("/")
def read_root():
    return {"message": "你好"}


# 这两个装饰器都指向同一个处理函数 get_index。
# 如果用户访问 /index(没有提供 name 参数),函数会使用默认值 "xu.henry"。
# 如果用户访问 /index/{name}(提供了 name 参数),函数会使用用户传递的值。
@app.get("/index")
@app.get("/index/{name}")
def get_index(name: str = "xu.henry"):
    return {"name": name}

路径中的Post请求

  • Post请求通常用来提交数据
  • Body(…) 表示字段是必填项,Body() 表示字段是可选项(可以有默认值)
  • items的类型注解和Body没有必然联系
from fastapi import FastAPI, Body

app = FastAPI()

# 使用请求体参数的路由
@sub_router.post("/items")
def post_items(items: str = Body(...)):
    return items
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值