python:Fastapi 路径参数

前面聊了主要聊了一些简介和一些例子,今天主要是聊路径参数查询参数等操作。

文章中肯定是避免不了官方文档的东西,但都会进行实操,也会列出踩坑点,希望对您有所帮助。

话不多少,进入代码的世界…

路径参数


路 径 参 数

fastapi中添加路径可使用与 Python 格式化字符串相同的语法来声明路径"参数"或"变量":

from fastapi import FastAPI


@app.get("/items/{item_id}")
async def read_item(item_id):
    """
    路径参数
    :param item_id:
    :return:
    """
    return {"item_id": item_id}

路径参数 item_id 的值将作为参数 item_id 传递给你的函数。
当你启动后去请求该接口时http://127.0.0.1:8000/items/Beijing,显示结果如下:

{"item_id":"Beijing"}

这里的Beijing是随意输入的值,你想输入什么值就返回什么样的值。

但是,如果你对这个路径参数设置了指定类型,那就另一番风景了:

from fastapi import FastAPI

app = FastAPI()


@app.get("/items/{item_id}")
async def read_item(item_id: int):
    """
    指定类型
    :param item_id: 
    :return: 
    """
    return {"item_id": item_id}

这里指定了路径参数的类型,请求接口http://127.0.0.1:8000/items/Beijing,显示结果如下:

{
    "detail": [{
        "loc": ["path", "item_id"],
        "msg": "value is not a valid integer",
        "type": "type_error.integer"
    }]
}

从运行结果可以清晰看到,提示信息"type": "type_error.integer",这是因为路径参数指定的类型为整型,但传的参数是字符串,不符合规定的类型要求,Pydantic在幕后检测到不符合规定类型,就抛出了类型错误。

现在传规定参数,去请求接口http://127.0.0.1:8000/items/100,显示结果如下:

{"item_id":100}

预 设 值

如果你有一个接收路径参数的路径操作,但你希望预先设定可能的有效参数值,则可以使用标准的 Python Enum类型。

Enum就是枚举,枚举表示的是常量,因此,官方也建议枚举成员名称使用大写字母,枚举自身也是可迭代的

创建一个 Enum

  • 首先导入 Enum 并创建一个继承自 str 和 Enum 的子类。
  • 通过从 str 继承,API 文档将能够知道这些值必须为 string 类型并且能够正确地展示出来。

然后创建具有固定值的类属性,这些

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值